Skip to content

Latest commit

 

History

History
1448 lines (853 loc) · 84.8 KB

File metadata and controls

1448 lines (853 loc) · 84.8 KB

Version v0.9.4

Released 2026-02-27

Compare with v0.9.3 (16 commits since)

Features

  • support 3.14 (b468979 by Autumn Jolitz).

Bug Fixes

  • correct type hints (ebf53fb by Autumn Jolitz).
  • complain when public_class results in a non-traversible path (e3bc8da by Autumn Jolitz).
  • TypeVars w/o defaults on 3.12 and below (5b830d7 by Autumn Jolitz).

Docs

  • move wish to code block (abca413 by Autumn Jolitz).
  • use more effective language for notes (9dbc4fd by Autumn Jolitz).
  • add grouses to README (2849cce by Autumn Jolitz).

Continuous Integration

  • add 3.13, 3.14 (e079af9 by Autumn Jolitz).

Build

  • set version to 0.9.4 (be616fd by Autumn Jolitz).
  • fix pip argument in 3.14 (78aacb3 by Autumn Jolitz).
  • add 3.13, 3.14, remove illegal argument (c6c88a7 by Autumn Jolitz).
  • remove 3.7, 3.8 and above (93d609c by Autumn Jolitz).
  • fix invoke for python3.14 (bdac56b by Autumn Jolitz).
  • add ruff-force-format (68a3cd3 by Autumn Jolitz).
  • update pre-commit (35674aa by Autumn Jolitz).
  • set version to 0.9.4a0 (3f6528a by Autumn Jolitz).

Version v0.9.3

Released 2025-08-26

Compare with v0.9.2 (3 commits since)

Features

  • __init_subclass__ sanitizer, match ... clause support, __class_iter__ overrides (f683eaf by Autumn Jolitz).

Build

  • set version to 0.9.3 (98f9dcd by Autumn Jolitz).
  • set version to 0.9.3a0 (cb63a93 by Autumn Jolitz).

Version v0.9.2

Released 2025-07-11

Compare with v0.9.1 (3 commits since)

Bug Fixes

  • preserve type hint as-is to avoid type alias issues (d3de374 by Autumn Jolitz).

Build

  • set version to 0.9.2 (c2959d2 by Autumn Jolitz).
  • set version to 0.9.2a0 (e418c99 by Autumn Jolitz).

Version v0.9.1

Released 2025-07-09

Compare with v0.9.0 (15 commits since)

Bug Fixes

  • gather all defining scopes for type hint resolution (ced1d08 by Autumn Jolitz).
  • satisfy verify-types (2972b85 by Autumn Jolitz).
  • handle case where instruct.typing.resolve() is given (type, hint) and expects a UnionType out of it (e796397 by Autumn Jolitz).

Style

  • fix missing whitespace (4352555 by Autumn Jolitz).

Continuous Integration

  • delete anchor line from rst to avoid pypi errors (44ee9d8 by Autumn Jolitz).

Build

  • set version to 0.9.1 (0fabda7 by Autumn Jolitz).
  • remove invalid classifiers due to PyPI returning only one error per run (c227194 by Autumn Jolitz).
  • fallback to just the README due to PyPi being too restrictive (6576c9a by Autumn Jolitz).
  • remove changelog due to rst errors on pypi (fca19ff by Autumn Jolitz).
  • include files unconditionally (ae7c1ab by Autumn Jolitz).
  • invoke build may --include or --exclude files (3865f99 by Autumn Jolitz).
  • replace mutable source control references with tagged references (d17072f by Autumn Jolitz).
  • prune classifiers, add min python marker (d4849d5 by Autumn Jolitz).
  • add changelog and benchmark to source dist (8bc2ac3 by Autumn Jolitz).
  • set version to 0.9.1a0 (eaa1cce by Autumn Jolitz).

Version v0.9.0

Released 2025-07-08

Compare with v0.8.6 (26 commits since)

Features

  • remove class keyword concrete_class fully in favor of contextvars.ContextVar approach (378680d by Autumn).
  • upgrade all files to 3.8 (25d2874 by Autumn).
  • drop 3.7 official support (8818c45 by Autumn).

Bug Fixes

  • remove unused field (78596a3 by Autumn).
  • format (a9e1c4b by Autumn).

Docs

  • update (a9d73c6 by Autumn Jolitz).
  • remove broken change logs (4d94f1e by Autumn).

Dependencies

  • update pre-commit-hooks (dc016c3 by Autumn Jolitz).

Style

  • fix ignore comments (30ed5e1 by Autumn Jolitz).

Chore

  • pass linter on __main__.py (ef815a6 by Autumn).
  • update copyright year (9795d2e by Autumn).

Build

  • set version to 0.9.0 (455acea by Autumn Jolitz).
  • remove changelog constraints, fix up changelog with release dates from PyPI (f88d342 by Autumn Jolitz).
  • fix setup to account for git's packed refs, add packaging to setup requirements (7330dba by Autumn Jolitz).
  • use newer commit as git log can't see the older commit (9828f81 by Autumn).
  • fix case where venv was not passing --devel/--tests (6cecebc by Autumn).
  • ignore __main__.py for pyupgrade (32bfcc7 by Autumn).
  • enforce py38+ typing (d32d3e0 by Autumn).
  • use 3.8 as lowest python (5b6a820 by Autumn).
  • set version to 0.8.7 (1d83ee5 by Autumn).
  • fix changes since url, CI output (b261284 by Autumn).
  • fix changelog generation (5ab995d by Autumn).

Other

  • feature!: remove type _parent in favor of fixed thunks on data classes pointing to parent and metaclass handling type level queries (7148644 by Autumn).
  • feature: correct typehints and implement slice/int array operations by default (76fb2f9 by Autumn).
  • feature: make use of deduplicate(...) (f944d91 by Autumn).
  • feature!: clean up, deprecate class kwargs that can clash with other impls (a53552f by Autumn).

Version v0.8.6

Released 2025-06-11

Compare with v0.8.5 (9 commits since)

Features

  • implement AutoRepr (aka autorepr=True) (d58c423 by Autumn).

Bug Fixes

  • only call .as_json() when encountering Exception (if the stack is expanded from item that has .errors, it will already have JSONable items) (3e75170 by Autumn).
  • avoid exposing NoIterable fields via keys(), items() (dc6a6d8 by Autumn).
  • correct syntax error when no effective fields (may occur if all fields are Annotated[..., NoIterable]) (2b47a16 by Autumn).

Docs

Tests

  • verify NoPickle (886fedd by Autumn).

Chore

  • correct type hint errors (e554179 by Autumn).

Build

  • use a tempfile instead of a StringIO for git tag -F (57d2e0d by Autumn).
  • set version to 0.8.6 (6590620 by Autumn).

Version v0.8.5

Released 2025-05-07

Compare with v0.8.4 (17 commits since)

Bug Fixes

  • satisfy both mypy and ruff for TypingDefinition (895f357 by Autumn).
  • apply pre-commit to all files (f1164d1 by Autumn).
  • ValidationError should operate on .errors as it is list[Exception] | tuple[Exception, ...] (c6d85bf by Autumn).

Docs

Dependencies

  • add missing = for version (9bfc231 by Autumn).
  • remove black, update packages (74d22d6 by Autumn).

Chore

  • satisfy mypy type checks (8566e7f by Autumn).

Continuous Integration

  • remove Python 3.7 support (6b0e61d by Autumn).

Build

  • remove Python 3.10+ specific type reference (f41c750 by Autumn).
  • add Python 3.10, 3.12 specific checks (7a7694f by Autumn).
  • refactor, move verify types/style into task file (5597576 by Autumn).
  • add instruct.compat as a typing compat module (76cf633 by Autumn).
  • drop unused mypy/pytype code (5d7a32e by Autumn).
  • update pre-commit with ruff (f648133 by Autumn).
  • update pre-commit-config (edf9b20 by Autumn).
  • update precommit to use ruff (82f0d9c by Autumn).
  • set version to 0.8.5 (57ac9d4 by Autumn).

Version v0.8.4

Released 2024-06-30

Compare with v0.8.3 (3 commits since)

Bug Fixes

  • adjust copy_with to attempt to use __class_getitem__ as the fallback (597e16f by Autumn).

Docs

Build

  • set version to 0.8.4 (ad5d62c by Autumn).

Version v0.8.3

Released 2024-06-30

Compare with v0.8.2 (14 commits since)

Features

  • run benchmarks in CI, update README.rst, add coverage reports (c79546b by Autumn).

Bug Fixes

  • correct subtype generation for Python 3.10+ ``types.UnionType``s (2a970b0 by Autumn).
  • add mode to benchmarking in __main__.py, refactor slightly (af22b9b by Autumn).
  • instruct.Atomic-derived type keywork argument fast=True now supports all event listener forms (175f859 by Autumn).
  • __main__.py now can run benchmark again (7726865 by Autumn).

Docs

  • update (cd2c748 by Autumn).
  • remove |commits-since| as it is unused (310ded3 by Autumn).

Continuous Integration

  • tweak output of benchmark post-processing (2986c9c by Autumn).
  • rename the workflows (c12c49e by Autumn).

Build

  • fix changes since url, CI output (c50c856 by Autumn).
  • add test and ``benchmark``commands (e5a05cf by Autumn).
  • simplify the wrapper code to a common function, implement base64 wrapping (1aed800 by Autumn).
  • set version to 0.8.3 (e41da57 by Autumn).

Other

  • feature(typedef): implement simple type alias = hint (3.12+) (a16b1cb by Autumn).

Version v0.8.2

Released 2024-06-23

Compare with v0.8.1 (4 commits since)

Bug Fixes

  • handle fixed tuples correctly (c1bcd41 by Autumn).
  • use types.CodeType.replace(...) when available (8bbc3cf by Autumn).

Docs

Build

  • set version to 0.8.2 (d29ffc5 by Autumn).

Version v0.8.1

Released 2024-06-16

Compare with v0.8.0 (6 commits since)

Bug Fixes

  • avoid raising an exception inside testing tuple structure for a custom type (0a3108c by Autumn).

Docs

  • update (900b323 by Autumn).
  • remove contradictory statement (e4ed0b4 by Autumn).

Build

  • correct changelog link (bef4aeb by Autumn).
  • adjust tasks to allow for releasing on a version other than the CURRENT_VERSION.txt next default (fc42c02 by Autumn).
  • bump version to 0.8.1 (8a4c2ef by Autumn).

Version v0.8.0

Released 2024-06-09

Compare with v0.7.5.post2 (66 commits since)

Features

  • instruct/about.py will be structured for tuple comparisions like >= (0, 8, 0) (b9714f8 by Autumn).
  • add Undefined (41980a0 by Autumn).
  • implement generics! (0e716bf by Autumn).

Performance Improvements

  • use inspect.getattr_static more aggressively (c16a0ea by Autumn).

Bug Fixes

  • do not list the stack in a json output (2694716 by Autumn).
  • Python 3.7 cannot specialize the WeakKeyDictionary, so guard behind TYPE_CHECKING (1bc76ff by Autumn).
  • satisfy type checker for Python 3.11 and below (c478dd1 by Autumn).
  • added type hint to __json__ method (a6da934 by Autumn).
  • ignore mypy error from an attribute test (1230465 by Autumn).
  • add git changelog helper (b79c727 by Autumn Jolitz).
  • satisfy mypy for NoDefault type (297f268 by Autumn).
  • correct Python 3.12 to pass tests (f9e5296 by Autumn).
  • check for NoDefault (94c5f07 by Autumn).
  • default initialize untyped generics to Any (e0e781f by Autumn).
  • update backport for Python 3.7 (fffa961 by Autumn).

Code Refactoring

  • split into language, compat, add type hints, restructure to be more specific (9845934 by Autumn).
  • rename IAtomic to AbstractAtomic, AtomicImpl to BaseAtomic (7d2fb28 by Autumn).
  • rename Atomic to AtomicMeta (644fecb by Autumn).

Docs

  • update (1080c7c by Autumn).
  • clean up (0184422 by Autumn).
  • add newline for change list (345cb2d by Autumn).
  • git-changelog requires a "v" prefix to match v prefixed tags (8b8b6cf by Autumn).
  • try to make more friendly for github (a530071 by Autumn Jolitz).

Dependencies

  • pin black for python 3.8 (6a500d6 by Autumn).

Tests

Style

Chore

  • ignore python** folders (used in cross version testing) (de0a37c by Autumn).
  • drop pytype overlay (6b0a8f8 by Autumn).
  • up version to 0.8.0, remove unused imports, add to README that Generics are supported (4b0902a by Autumn).
  • silence mypy on Genericizable with an ignore (5cfb45f by Autumn).
  • pass mypy type checks (506a810 by Autumn).

Continuous Integration

  • finalize, skip existing obj on pypi (8df60b3 by Autumn).
  • disable word wrapping in pandoc (c9479ee by Autumn).
  • allow pypi publishing, add sha sums to the release notes (5b49f13 by Autumn).
  • add release functionality (handles versioning, etc) (29d376b by Autumn).
  • simplify, write version specific changes to the release, temporarily disable pypi (e32a1a9 by Autumn).
  • use invoke build (552203b by Autumn).
  • use the newer python setup step (4d42fa4 by Autumn).
  • get all history for a change log generator (15e9103 by Autumn).
  • run the changes test before any tests run (9b741ce by Autumn).
  • ensure CHANGES.rst is always up-to-date (d9bc2ce by Autumn).
  • print out black version (42ba597 by Autumn).
  • relax restrictions on build (6157a1c by Autumn).

Build

  • bump version to 0.8.0 (f5b0765 by Autumn).
  • assume pawamoy/git-changelog@89 will be merged in a few days (7e23986 by Autumn).
  • remove invalid classifier (despite the fact this is used as a framework) (3174afc by Autumn).
  • add checksum command (83f3973 by Autumn).
  • overhaul setup.cfg classifiers et al, given that instruct has been production ready for years now (0639313 by Autumn).
  • ignore python3.whatever directories, remove some default changelog options for use in tasks.py (b47a942 by Autumn).
  • run black (cb40105 by Autumn).
  • changelog can now omit in-flight/unreleased changes (ac15505 by Autumn).
  • bump version to next alpha (00dd465 by Autumn).
  • pre-commit should use repo's pyproject (33e1369 by Autumn).
  • delete unused black config (f6567ac by Autumn).
  • add files back for the naive python -m build case to work (cf96480 by Autumn).
  • setup-metadata can now dump info from a wheel or sdist (9c19cf4 by Autumn).
  • ensure source distributions do not depend on source control, remove unused functions (a7f6de0 by Autumn). Referenced By: Source Distributions
  • ensure task_support injects pprint (a3abf25 by Autumn).
  • remove unused files (cee5f21 by Autumn).
  • ensure about.VersionInfo has a compliant pep440 .public_... and __str__() functions (f6bedea by Autumn).
  • fix CHANGES.rst, use fork of git-changelog until pawamoy/git-changelog@89 is merged and released, use pep440 versioning (771790b by Autumn).
  • fix type hint complaints, add helpers (ad00166 by Autumn).
  • add defaults for git-changelog, require 2.4.0 as 2.4.1+ will ignore untyped commits (39025c3 by Autumn).
  • prerelease v0.8.0a0 (ef84469 by Autumn).
  • bump to v0.8.0 series (f0ad5ae by Autumn).

Version v0.7.5.post2

Released 2024-02-29

Compare with v0.7.5 (1 commits since)

Bug Fixes

  • correct for Python 3.7 (e58c523 by Autumn).

Version v0.7.5

Released 2024-02-29

Compare with v0.7.3.post1 (9 commits since)

Features

  • support type | type in Python 3.10 and above, implement __init_subclass__(cls) (88164e3 by Autumn).

Docs

  • try to make more friendly for github (46df415 by Autumn Jolitz).
  • update CHANGES.rst, README.rst (42bd3d2 by Autumn Jolitz).
  • template-ize for release note generation (5e508b7 by Autumn Jolitz).
  • test of git-changelog (a4aeb37 by Autumn Jolitz).

Chore

  • add badges to README.rst, adjust github CI workflow names (66b4067 by Autumn).

Continuous Integration

  • add PyPy in testing (fd12152 by Autumn Jolitz).

Build

Version v0.7.3.post1

Released 2023-12-04

Compare with v0.7.3 (2 commits since)

Continuous Integration

Build

  • bump version to v0.7.3.post1 (f8afb3d by Autumn).

Version v0.7.3

Released 2023-07-18

Compare with v0.7.2 (2 commits since)

Features

  • Port instruct to newer Python versions, implement CI/CD (7dda1bd by Autumn Jolitz).

Build

  • unlock versions to be more flexible, bump to v0.7.3 (2e0a5cc by Autumn).

Version v0.7.2

Released 2022-05-13

Compare with v0.7.1 (8 commits since)

Features

  • export RangeFlags (7420aa5 by Autumn).
  • remove fast new in favor of calling self._set_defaults() (6edb925 by Autumn).

Bug Fixes

  • add dummy __iter__ to handle empty class case (a51c252 by Autumn).

Docs

  • add notes on use of Range and friends (04356d2 by Autumn).
  • add comparison between instruct and pydantic (9090595 by Autumn).
  • update (f8c0209 by Autumn).

Tests

  • use _set_defaults instead (7ccf4a4 by Autumn).
  • add tests for _set_defaults(...) on a class (12e2ee7 by Autumn).

Version v0.7.1

Released 2022-05-13

Compare with v0.7.0 (5 commits since)

Features

  • export instruct.clear(), instruct.reset_to_defaults(), make instance._set_defaults() first call the zero-init version, then cascade through the inheritance tree for any overrides, add default functions for empty classes, use __public_class__ magic method for public_class calls (1d1e528 by Autumn).

Chore

  • remove unused import in __main__.py (fadf4c6 by Autumn).

Continuous Integration

Build

Version v0.7.0

Released 2022-05-12

Compare with v0.6.7 (7 commits since)

Features

  • spider annotations, use the NoPickle et al constants to influence class behavior (2eea997 by Autumn).
  • support Annotation[...] and within it, a set of Range``s, raise ``RangeError when a value is type allowed but does not fit the ranges specified! (42599b0 by Autumn).
  • implement several constants for use in Annotation[...] including Range for interval capping (and RangeError)! (11f25b3 by Autumn).

Docs

  • update README, add a CHANGES file (8840218 by Autumn).

Dependencies

  • bump jinja2 and typing_extensions versions (9adca04 by Autumn).

Tests

  • add additional tests (7aa8c31 by Autumn).

Build

  • bump to v0.7.0 (f97c699 by Autumn).

Version v0.6.7

Released 2021-03-31

Compare with v0.6.6 (1 commits since)

Performance Improvements

  • cache by effective skipped fields across the board, do not confuse with second level skip/redefinitions, bump to v0.6.7 (10aea05 by Autumn).

Version v0.6.6

Released 2021-02-17

Compare with v0.6.5 (1 commits since)

Bug Fixes

  • handle zero-length collections correctly, type hints should resolve using the locals, module globals, then typing ones, bump to v0.6.6 (b7d0898 by Autumn).

Version v0.6.5

Released 2021-02-16

Compare with v0.6.4 (1 commits since)

Features

  • allow instruct.public_class() to access subclasses by index, document ambiguities, cascade subtraction preservation, bump to v0.6.5 (8a0fdda by Autumn).

Version v0.6.4

Released 2021-01-13

Compare with v0.6.3 (1 commits since)

Bug Fixes

  • adjust instruct.public_class to detect modified subtracted classes, allow proper overrides of __coerce__ when class inheritance is greater than 1 deep, bump to v0.6.4 (c4d2b91 by Autumn).

Version v0.6.3

Released 2020-12-07

Compare with v0.6.2 (1 commits since)

Bug Fixes

  • fix .keys(...) to operate on simple field that is Atomic descendant (no optional, etc wrapping), bump to v0.6.3 (697a4ec by Autumn).

Version v0.6.2

Released 2020-12-07

Compare with v0.6.1 (3 commits since)

Features

  • add instruct.show_all_fields to public API, ensure reachability for Optional type hinted fields (5dde190 by Autumn).
  • allow instruct.keys(), instruct.show_all_fields() to handle Union, Optional with embedded Atomic types properly (47f038d by Autumn).

Build

Version v0.6.1

Released 2020-12-07

Compare with v0.6.0 (1 commits since)

Features

  • allow class subtractions to be pickled/unpickled, make type name friendlier to inflection.titleize(...), ensure a test for class method replacements, pickling, bump to v0.6.1 (e28f6c6 by Autumn).

Version v0.6.0

Released 2020-12-04

Compare with v0.5.0 (34 commits since)

Features

  • allow keys() to operate and extract keys for an embedded field (647ee5c by Autumn).
  • allow for downcasting of a parent type to a subtracted type when generating the skip keys type (9ca88d0 by Autumn).
  • support collections by position, make unions branch on type checks, avoid pipe-nature in favor of graph branch approach (fcbc5bc by Autumn).
  • allow for generation of an effective coerce function based on type spidering (b2f8195 by Autumn).
  • introduce a union branch function that assumes unique traces in subtype (7078730 by Autumn).
  • add in initial approach (``subtype.py``) for automated parent value type coercion to subtracted type (5b50dc2 by Autumn).
  • handle subtracted classes in a more generalized fashion, use the correct function globals for the LOAD_GLOBAL bytecode (531918e by Autumn).
  • support classmethod() rewriting for skip keys (1505945 by Autumn).
  • implement cls & {...} (type inclusion masks) (fbff83f by Autumn).
  • introduce more complex type subtractions that are commutative (17ad8af by Autumn).
  • implement a search-and-replace of instruct Atomics inside of type hint instances w/o overriding a singleton class instance (39c8084 by Autumn).
  • implement single level, single Atomic-descendant removal of attribute names on an Atomic-derived object (termed Skip Keys) (422e7b4 by Autumn).

Performance Improvements

  • refactor, allow caching of class subtractions via FrozenMapping (d3e9ef7 by Autumn).

Bug Fixes

  • in case of a tuple of existing types, add to it for the union (bbd1ef6 by Autumn).
  • on subtraction of fields that cannot be, just ignore it (08163a5 by Autumn).
  • allow overriding of callouts to a class in a __coerce__ function by using a closure intercept (f2be81a by Autumn).

Code Refactoring

  • reduce wildcard exports, export instruct.public_class(...) (890de96 by Autumn).
  • limit instruct.show_all_fields, refactor CellType creation to a simpler form (ea9d46f by Autumn).

Docs

  • track progress (4fdc793 by Autumn).
  • update goals (0a26794 by Autumn).

Tests

  • move nameless person to test scope to pass flake8 false negative (6fb8d11 by Autumn).
  • document absurdities (f231790 by Autumn).
  • note where the cached classes may be looked up (e87d49a by Autumn).

Chore

  • add generic type hint param U (6d12f28 by Autumn).
  • annotate the ClassOrInstanceFuncsDescriptor (513c103 by Autumn).
  • add CellType (3054875 by Autumn).
  • add stub for annotated decoding (75efce7 by Autumn).
  • add missing type (5f46828 by Autumn).

Continuous Integration

  • update workflow (a70bf50 by Autumn).
  • Add github action to test project (b938446 by Autumn Jolitz).

Build

  • v0.6.0 release (2784646 by Autumn).
  • add trailing newline (526c1de by Autumn).
  • ignore build, pytype files (cc2051e by Autumn).

Version v0.5.0

Released 2020-11-10

Compare with v0.4.13 (2 commits since)

Features

  • implement for Literal[...], bump minimum typing_extensions version, bump to v0.5.0 (dbad02c by Autumn).

Docs

  • track new design goals (fb1125f by Autumn).

Version v0.4.13

Released 2020-09-30

Compare with v0.4.12 (1 commits since)

Bug Fixes

  • correct typo where disabling derived should apply at all times, not only in debug mode, bump to v0.4.13 (4801c14 by Autumn).

Version v0.4.12

Released 2020-09-30

Compare with v0.4.11 (1 commits since)

Bug Fixes

  • when dict is in the __coerce__ types for a key, disable derived matching for setters, bump to v0.4.12 (40ebbb3 by Autumn).

Version v0.4.11

Released 2020-07-15

Compare with v0.4.9 (3 commits since)

Features

  • add top module level functions (asdict(), keys(), etc), implement bytes support for json encoding, __coerce__ may now have a tuple of field names in place of a field name to assign a single coercion to multiple attributes, bump to v0.4.11 (9bb6344 by Autumn).
  • implement metaclass support of keys()/values()/items()/to_json() (allows class definitions to override those names but still recover it via the type or metaclass), add tuple, list, dict and NamedTuple-like helper functions, bump to v0.4.10 (1ee382a by Autumn).

Chore

  • preallocate names, values, ids before test (373d6a2 by Autumn).

Version v0.4.9

Released 2020-07-07

Compare with v0.4.8 (1 commits since)

Bug Fixes

  • correct issue where keyword only defaults were stripped, bump to v0.4.9 (97ed502 by Autumn).

Version v0.4.8

Released 2020-07-02

Compare with v0.4.7 (1 commits since)

Bug Fixes

  • update README.rst, allow class definition in IDLE sessions, bump to v0.4.8 (2e70769 by Autumn).

Version v0.4.7

Released 2020-07-02

Compare with v0.4.6 (2 commits since)

Features

  • implement dataclass/NamedTuple-like type hinting, allow for overriding of autogenerated magic methods while allowing argless super() in their overrides, bump to v0.4.7 (b71398b by Autumn).

Build

  • fix precommit to older black because I feel the new tuple unpacking style for everything is rather noisy (00e9450 by Autumn).

Version v0.4.6

Released 2020-05-11

Compare with v0.4.5 (5 commits since)

Features

  • allow subtraction of fields on an adhoc basis, bump to v0.4.6 (59cf2b1 by Autumn).
  • add helper function to typedef to check if atomic type class or meta (a280f4b by Autumn).

Bug Fixes

  • avoid calling parse_typedef on __coerce__ = None (4018332 by Autumn).

Code Refactoring

  • refactor to make clearer, rename dataclass to concrete_class to signal "don't touch this" (2342e46 by Autumn).

Docs

  • document ``typedef.py`` to be clearer, remove erroneous cast to type (802cc67 by Autumn).

Version v0.4.5

Released 2020-02-14

Compare with v0.4.4 (1 commits since)

Performance Improvements

  • keep a weak reference to the owning classes to avoid constant rebinding for one-time class definitions, bump to v0.4.5 (fa6b459 by Autumn Jolitz).

Version v0.4.4

Released 2020-02-10

Compare with v0.4.3 (1 commits since)

Features

  • order preserving keys() on an instance, provide class-level keys(), implement positional arguments, bump to v0.4.4 (87c1b6f by Autumn Jolitz).

Version v0.4.3

Released 2020-01-06

Compare with v0.4.2 (3 commits since)

Performance Improvements

  • at class .... definition time, track if the property type list may have a collection of Atomic descendants (allows one to check a mapping instead of type hints) (ff812db by Autumn Jolitz).

Tests

  • functions for determining if it contains a collection/mapping of Atomic-descendents in class ... definition (95f79a5 by Autumn Jolitz).

Other

  • [about] 0.4.3 (eb70a1c by Autumn Jolitz).

Version v0.4.2

Released 2019-10-13

Compare with v0.4.1 (2 commits since)

Features

  • preserve original slots at _slots, improve FrozenMapping interface, bump to v0.4.2 (44ab8dc by Autumn Jolitz).

Version v0.4.1

Released 2019-10-13

Compare with v0.4.0 (1 commits since)

Bug Fixes

  • restrict flatten to only merge list, tuple, generators, bump to v0.4.1 (1d922a4 by Autumn Jolitz).

Version v0.4.0

Released 2019-09-18

Compare with v0.3.8 (1 commits since)

Features

  • finer grained exceptions, support [] on properties, rename skip to dataclass, impllement ability to handle property type violations with a handler function, bump to v0.4.0 (15d26a5 by Autumn Jolitz).

Version v0.3.8

Released 2019-08-22

Compare with v0.3.7 (1 commits since)

Bug Fixes

  • Mapping immutability on to_json, enforce __coerce__ constraints, bump to v0.3.8 (a45e1b1 by Autumn Jolitz).

Version v0.3.7

Released 2019-08-07

Compare with v0.3.5 (1 commits since)

Bug Fixes

  • correct singular exception, bump to v0.3.7 (103739b by Autumn Jolitz).

Version v0.3.5

Released 2019-08-07

Compare with v0.3.4 (2 commits since)

Features

  • explicitly support Tuple[Type, ...], Dict[KeyType, ValueType], bump to v0.3.5 (8903c5b by Autumn Jolitz).

Build

  • add black (3ed3a00 by Autumn Jolitz).

Version v0.3.4

Released 2019-04-30

Compare with v0.3.3 (4 commits since)

Features

  • support redefining properties on inherited members if explicitly called out, bump to v0.3.4 (f60943f by Autumn Jolitz).

Chore

  • pass type check in ``typedef.py`` (d9ef56c by Autumn Jolitz).

Build

  • add in hooks for mypy and pytype (0c0b526 by Autumn Jolitz).
  • add in defintions for type checkers (8834579 by Autumn Jolitz).

Version v0.3.3

Released 2019-04-22

Compare with v0.3.2 (3 commits since)

Chore

  • add type hints (0c7f6bb by Autumn Jolitz).
  • add project type hint definitions (da3c079 by Autumn Jolitz).

Build

  • bump to v0.3.3 (0eb1781 by Autumn Jolitz).

Version v0.3.2

Released 2019-03-19

Compare with v0.3.1 (1 commits since)

Bug Fixes

  • support nested ``ClassCreationFailed``s, bump to v0.3.2 (bbf15c7 by Autumn Jolitz).

Version v0.3.1

Released 2019-03-09

Compare with v0.3.0 (1 commits since)

Features

  • expose _column_types for mixins, bump to v0.3.1 (11636dc by Autumn Jolitz).

Version v0.3.0

Released 2019-02-11

Compare with v0.2.7 (1 commits since)

Bug Fixes

  • renormalize the changes list, bump to v0.3.0 (01c37b1 by Autumn Jolitz).

Version v0.2.7

Released 2019-02-06

Compare with v0.2.6 (1 commits since)

Features

  • identify as a Mapping, bump to v0.2.7 (fe23126 by Autumn Jolitz).

Version v0.2.6

Released 2019-02-06

Compare with v0.2.5 (1 commits since)

Features

  • add in a from_json top level helper, bump to v0.2.6 (c57eb16 by Autumn Jolitz).

Version v0.2.5

Released 2019-02-06

Compare with v0.2.4 (1 commits since)

Bug Fixes

  • correct __qualname__ for internal dataclasses, bump to v0.2.5 (e611963 by Autumn Jolitz).

Version v0.2.4

Released 2019-02-06

Compare with v0.2.3 (3 commits since)

Bug Fixes

  • correct __qualname__, __module__ on dataclass instances, bump to v0.2.4 (f9c1362 by Autumn Jolitz).
  • remove leading _ (6b2bfbb by Autumn Jolitz).

Tests

  • verify JSON and mutable values (a54d2a8 by Autumn Jolitz).

Version v0.2.3

Released 2019-02-05

Compare with v0.2.2 (1 commits since)

Features

  • assume immutable copies if possible, bump to v0.2.3 (0767baf by Autumn Jolitz).

Version v0.2.2

Released 2019-02-04

Compare with v0.2.1 (1 commits since)

Features

  • add class name into class creation failure message, bump to v0.2.2 (789b948 by Autumn Jolitz).

Version v0.2.1

Released 2019-02-04

Compare with v0.2.0 (2 commits since)

Features

  • use the globals() for overridden props from __module__ (f61e851 by Autumn Jolitz).

Build

  • bump to v0.2.1 (bc4d30c by Autumn Jolitz).

Version v0.2.0

Released 2019-02-04

Compare with v0.1.1 (4 commits since)

Features

  • use _{key}_ for internal access (d647e21 by Autumn Jolitz).
  • rename the internal of _raw_{key} to _{key}_, fix up __class__ reference for argless super() calls (2690415 by Autumn Jolitz).

Tests

  • add test for clear() (573c535 by Autumn Jolitz).

Build

  • bump to v0.2.0 (4d376a4 by Autumn Jolitz).

Version v0.1.1

Released 2019-02-01

Compare with v0.1.0 (1 commits since)

Bug Fixes

  • remove errant debug print, bump to v0.1.1 (8ef5e5e by Autumn Jolitz).

Version v0.1.0

Released 2019-02-01

Compare with v0.0.21 (1 commits since)

Features

  • support 1-level Iterable[Base] -> JSON, hooks, better pickling, __setitem__ on class, bump to v0.1.0 (2f0feea by Autumn Jolitz).

Version v0.0.21

Released 2018-12-19

Compare with v0.0.20 (1 commits since)

Tests

  • more tests, bump to v0.0.21 (52a75e6 by Autumn Jolitz).

Version v0.0.20

Released 2018-12-19

Compare with v0.0.19 (1 commits since)

Features

  • track coerce types, bump to v0.0.20 (a5c96ca by Autumn Jolitz).

Version v0.0.19

Released 2018-12-19

Compare with v0.0.18 (2 commits since)

Features

  • support nested List better, bump to v0.0.19 (9f48c95 by Autumn Jolitz).

Tests

  • fix test atomic (10a7e56 by Autumn Jolitz).

Version v0.0.18

Released 2018-12-19

Compare with v0.0.17 (3 commits since)

Bug Fixes

  • error on generics, support nested lists, bump to v0.0.18 (96582de by Autumn Jolitz).

Chore

  • ignore python/ venv and .pytest_cache (4ab0a70 by Autumn Jolitz).
  • remove inaccurate setup.cfg (6709054 by Autumn Jolitz).

Version v0.0.17

Released 2018-12-14

Compare with v0.0.16 (1 commits since)

Bug Fixes

  • fix type message, bump to v0.0.17 (ded8a9c by Autumn Jolitz).

Version v0.0.16

Released 2018-12-13

Compare with v0.0.15 (1 commits since)

Features

  • fix history truncation, bump to v0.0.16 (e18a73c by Autumn Jolitz).

Version v0.0.15

Released 2018-12-13

Compare with v0.0.14 (1 commits since)

Bug Fixes

  • support correct property accounting (431742d by Autumn Jolitz).

Version v0.0.14

Released 2018-12-13

Compare with v0.0.13 (1 commits since)

Features

  • now with better type names, bump to v0.0.14 (9a1994f by Autumn Jolitz).

Version v0.0.13

Released 2018-12-12

Compare with v0.0.12 (1 commits since)

Features

  • index properties onto the class, bump to v0.0.13 (aabef91 by Autumn Jolitz).

Version v0.0.12

Released 2018-12-12

Compare with v0.0.11 (1 commits since)

Features

  • supports overrideable type errors, bump version to v0.0.12 (2b7746a by Autumn Jolitz).

Version v0.0.11

Released 2018-12-11

Compare with v0.0.10 (1 commits since)

Bug Fixes

  • Correct bug in class keyword argument fast=True, bump version to v0.0.11 (eb7e57f by Autumn Jolitz).

Version v0.0.10

Released 2018-12-11

Compare with v0.0.9 (1 commits since)

Features

  • add in **mapping support (e07105e by Autumn Jolitz).

Version v0.0.9

Released 2018-12-11

Compare with v0.0.8 (1 commits since)

Code Refactoring

  • restructure and introduce better naming (99e1ae8 by Autumn Jolitz).

Version v0.0.8

Released 2018-12-11

Compare with v0.0.7 (1 commits since)

Features

  • Support generation of custom types to match requirements (a1a5643 by Autumn Jolitz).

Version v0.0.7

Released 2018-12-10

Compare with v0.0.6 (1 commits since)

Bug Fixes

  • restore __hash__ to data classes (0e9ef2b by Autumn Jolitz).

Version v0.0.6

Released 2018-12-10

Compare with v0.0.5 (1 commits since)

Features

  • make it possible to get the parent support class (9088c1f by Autumn Jolitz).

Version v0.0.5

Released 2018-12-10

Compare with v0.0.4 (1 commits since)

Features

  • Python 3.7 focus (d32a4e9 by Autumn Jolitz).

Version v0.0.4

Released 2018-12-10

Compare with v0.0.3 (2 commits since)

Features

  • allow use of type as a attribute name (8d91b48 by Autumn Jolitz).

Chore

  • bump version (3848f59 by Autumn Jolitz).

Version v0.0.3

Released 2018-12-10

Compare with v0.0.2 (1 commits since)

Build

  • this is not a universal build (1e3bab8 by Autumn Jolitz).

Version v0.0.2

Released 2018-12-10

Compare with v0.0.1 (1 commits since)

Features

  • updates for Python 3.7 (0ed83ef by Autumn Jolitz).

Version v0.0.1

Released 2018-12-09

Compare with first commit (20 commits since)

Features

  • update for Python 3.6 (004caba by Autumn Jolitz).
  • Add JSON, pickle, and coercion (allows casting from N types to an appropriate type) (8fe8aa2 by Autumn Jolitz).
  • Add field linkages (9531dad by Autumn Jolitz).
  • Support multiple inheritance, optimize edge classes (2d7a4fa by Autumn Jolitz).
  • Use Jinja to handle the macro-work (487fa3d by Autumn Jolitz).
  • Optimize through use of __new__ to seed vital fields ahead of time (48f29d3 by Autumn Jolitz).
  • Support derived embedded classes and duck-eqing them (b514f07 by Autumn Jolitz).
  • Flush out an idea (3d80b09 by Autumn Jolitz).

Performance Improvements

  • Increase performance through codegen of constant structural cases (f51acac by Autumn Jolitz).

Bug Fixes

  • bugfixes (7803843 by Autumn Jolitz).

Docs

  • update (24ad8fd by Autumn Jolitz).
  • update intent (9ecfb23 by Autumn Jolitz).
  • Add docs (d0fb82c by Autumn Jolitz).
  • Log performance (efe710a by Autumn Jolitz).
  • Log my approach (d6972e8 by Autumn Jolitz).

Dependencies

  • add pytest dependency (7b1022a by Autumn Jolitz).

Tests

  • add test for the readme (ce75dfd by Autumn Jolitz).

Chore

  • Delete unused code (93e8791 by Autumn Jolitz).

Build

  • initial release of just the object structure (9c43431 by Autumn Jolitz).