Merged
Conversation
… are different in JSON vs python for consistent round-trip between JSON and python
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR focuses on development environment housekeeping by introducing comprehensive linting and type-checking tooling, modernizing dependency management, and refactoring datetime/duration serialization to use standard libraries instead of custom utilities.
Key changes include:
- Addition of comprehensive development tooling (flake8, mypy, pre-commit) with configuration files and Makefile targets
- Migration from custom datetime/duration serialization utilities to standard library and isodate package
- Dependency management improvements with flexible version specifiers and new development dependencies
Reviewed Changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| vultron/as_vocab/base/objects/base.py | Refactored datetime/duration serialization to use isodate and standard library methods |
| vultron/as_vocab/base/dt_utils.py | Removed custom ISO format encoding/decoding functions, simplified to use standard library |
| vultron/as_vocab/base/base.py | Updated Pydantic model configuration for better validation behavior |
| vultron/as_vocab/activities/case_participant.py | Fixed field naming inconsistency for target field |
| pyproject.toml | Updated dependencies to flexible version specifiers and added development dependencies |
| mdlint.sh | Updated copyright year and improved directory exclusions |
| Makefile | Added comprehensive development workflow targets |
| LICENSE.md | Updated copyright year |
| .pre-commit-config.yaml | Added pre-commit configuration for Black formatting |
| .mypy.ini | Added mypy type checking configuration |
| .flake8 | Added flake8 linting configuration |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a range of improvements focused on development tooling, code linting, dependency management, and serialization logic. The most significant changes include the addition and configuration of linting and type-checking tools, updates to dependencies for better compatibility and maintainability, and refactoring of datetime and duration serialization logic to use standard libraries.
Development tooling and linting enhancements:
.flake8and.mypy.inifiles for code linting and type checking, including per-file ignores and package-specific settings. Also added a.pre-commit-config.yamlto automate code formatting with Black. [1] [2] [3]Makefilewith targets for setup, dependency upgrades, linting (black, flake8, markdownlint, mypy), testing, and Docker operations to streamline development workflows.Dependency management:
pyproject.tomlto use more flexible version specifiers (>=), added new development dependencies (flake8,mypy,pre-commit,pandas-stubs,types-networkx), and bumpedblackto a newer version. [1] [2]blacktarget versions to remove support for Python 3.13, focusing on currently supported versions.Serialization and validation refactoring:
vultron/as_vocab/base/objects/base.pyto use theisodatelibrary for durations and Python's built-indatetime.fromisoformatfor datetimes, improving standards compliance and reliability. [1] [2] [3]vultron/as_vocab/base/dt_utils.pyby removing custom ISO format encoding/decoding functions in favor of standard library usage. [1] [2]Minor updates and corrections:
LICENSE.mdandmdlint.sh..venvand.gitdirectories. [1] [2]vultron/as_vocab/activities/case_participant.pyfor consistency.vultron/as_vocab/base/base.pyfor improved validation behavior.