New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New build system #243
New build system #243
Commits on Mar 29, 2020
-
new implementation of parsing and serialization
This "conversion" process now has two levels: The low-level part is in `valuetype`, where ics value strings are converted to simple python objects and back, based on some externally determined VALUE type and without using any context or inspecting parameters. The high-level part is in `converter`. A `GenericConverter` can take multiple ContentLines or Containers and convert them into the respective values of a `Component`. For `AttributeConverter`s this is done for a single attribute of a `Component` type (which must be an `attr`s class), using metadata of the attribute to determine further information, such as value type, is required or multi value, ics name, etc. `AttributeValueConverter`s then use a `valuetype` converter to parse the simple attribute value. Other converters combine multiple `ContentLine`s into a single attribute, e.g. a `Timespan`, `Person`, or `rrule`. The `ComponentConverter`, which is created from the `Meta` attribute set on any `Component` subclass, inspects all attributes of the class and calls the respective converters. All unknown parameters are now also collected in a dict. This makes it a lot less work to add new attributes, as most conversion logic can be generated automatically and without any redundant code. Additionally, this makes it easier to implement correct handling of `VTIMEZONE`s in all places and will allow implementation of JSON-based ical handling and variable levels of parser strictness. I also included some further refactorings: the `tools` module with the broken online validation is gone (the website is offline), as all `Alarm`s now only take a few lines they have been merged into a single file, `ics.grammar.parse` has been shortened to `ics.grammar`, the inner `Meta` classes has been replaced by instances of an `attr`s class, the `Component` conversion methods are now called `from_container` and `to_container` and for `ContentLine`/`Container` there's now a `serialize` method to convert them to ics strings. The most important change might be that all custom `__str__` and `__repr__` methods were removed. They now default to what `attr` generates and in general follow the standard that `repr`s "should look like a valid Python expression that could be used to recreate an object with the same value". This makes debugging easier and allows us to implement `str` with a nice and short informal representation, and only generate the ics representation when this is intended. Previously, `__str__` returned the ics string and `__repr__` returned a very short informal description, which made dumping the actual python values hard when debugging.
Configuration menu - View commit details
-
Copy full SHA for f6544d9 - Browse repository at this point
Copy the full SHA f6544d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8466e3a - Browse repository at this point
Copy the full SHA 8466e3aView commit details -
Configuration menu - View commit details
-
Copy full SHA for b05ce7d - Browse repository at this point
Copy the full SHA b05ce7dView commit details
Commits on Apr 4, 2020
-
pass params and context to ValueConverter for timezone handling
ValueConverters are now allowed to modify optional params and context, i.e. consume params and store context when parsing, and add params when serializing. also move ExtraParams to types, use NewType instead of a direct alias to catch invalid dict usage, and ensure that they are copied using deep-copy (they might contain lists), add EmptyDict as argument default, fix timespan context clean-up
Configuration menu - View commit details
-
Copy full SHA for dc8923c - Browse repository at this point
Copy the full SHA dc8923cView commit details -
Configuration menu - View commit details
-
Copy full SHA for eae493d - Browse repository at this point
Copy the full SHA eae493dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 537823d - Browse repository at this point
Copy the full SHA 537823dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 827088e - Browse repository at this point
Copy the full SHA 827088eView commit details
Commits on Apr 5, 2020
-
Configuration menu - View commit details
-
Copy full SHA for f846543 - Browse repository at this point
Copy the full SHA f846543View commit details
Commits on Apr 6, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3cafe53 - Browse repository at this point
Copy the full SHA 3cafe53View commit details
Commits on Apr 10, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e44e4b3 - Browse repository at this point
Copy the full SHA e44e4b3View commit details -
Configuration menu - View commit details
-
Copy full SHA for c79fd0b - Browse repository at this point
Copy the full SHA c79fd0bView commit details -
Configuration menu - View commit details
-
Copy full SHA for aeb575e - Browse repository at this point
Copy the full SHA aeb575eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 92e8a9e - Browse repository at this point
Copy the full SHA 92e8a9eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a4e681 - Browse repository at this point
Copy the full SHA 5a4e681View commit details -
Configuration menu - View commit details
-
Copy full SHA for f608e0c - Browse repository at this point
Copy the full SHA f608e0cView commit details -
Configuration menu - View commit details
-
Copy full SHA for f5c6a16 - Browse repository at this point
Copy the full SHA f5c6a16View commit details -
Configuration menu - View commit details
-
Copy full SHA for 19b058f - Browse repository at this point
Copy the full SHA 19b058fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6166169 - Browse repository at this point
Copy the full SHA 6166169View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00cd53c - Browse repository at this point
Copy the full SHA 00cd53cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 03d9ffa - Browse repository at this point
Copy the full SHA 03d9ffaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b4ec8e - Browse repository at this point
Copy the full SHA 7b4ec8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d76bec - Browse repository at this point
Copy the full SHA 7d76becView commit details
Commits on Apr 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b9e6ab9 - Browse repository at this point
Copy the full SHA b9e6ab9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03c549c - Browse repository at this point
Copy the full SHA 03c549cView commit details -
Bump version: 0.8.0-dev → 0.8.0
this was done using `bumpversion --verbose release`
Configuration menu - View commit details
-
Copy full SHA for 20bade0 - Browse repository at this point
Copy the full SHA 20bade0View commit details -
Bump version: 0.8.0 → 0.9.0-dev
this was done using `bumpversion --verbose minor`
Configuration menu - View commit details
-
Copy full SHA for 9fb5bdf - Browse repository at this point
Copy the full SHA 9fb5bdfView commit details -
Bump version: 0.9.0-dev → 0.9.0
this was done using `bumpversion --verbose release`
Configuration menu - View commit details
-
Copy full SHA for 07a2577 - Browse repository at this point
Copy the full SHA 07a2577View commit details -
separate src inspection (flake8+mypy src/) from package testing (pyte…
…st tests/) to fix PATH problems
Configuration menu - View commit details
-
Copy full SHA for aab3444 - Browse repository at this point
Copy the full SHA aab3444View commit details -
Configuration menu - View commit details
-
Copy full SHA for c7f193d - Browse repository at this point
Copy the full SHA c7f193dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 109f1ad - Browse repository at this point
Copy the full SHA 109f1adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e7b553 - Browse repository at this point
Copy the full SHA 4e7b553View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6673720 - Browse repository at this point
Copy the full SHA 6673720View commit details -
Configuration menu - View commit details
-
Copy full SHA for 281c9f6 - Browse repository at this point
Copy the full SHA 281c9f6View commit details
Commits on Apr 12, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3365faf - Browse repository at this point
Copy the full SHA 3365fafView commit details -
`noqa` and `type: ignore` are now only used for actual bugs in the checkers unfortunately, current pyflakes dislikes `type: ignore[something]`, so we can't ignore specific mypy bugs until pyflakes 2.2 is in flakes8
Configuration menu - View commit details
-
Copy full SHA for aa0447e - Browse repository at this point
Copy the full SHA aa0447eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 83bda5c - Browse repository at this point
Copy the full SHA 83bda5cView commit details
Commits on Apr 21, 2020
-
Apply suggestions from code review
Co-Authored-By: Tom Schraitle <tomschr@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 4927e0f - Browse repository at this point
Copy the full SHA 4927e0fView commit details
Commits on Apr 22, 2020
-
Configuration menu - View commit details
-
Copy full SHA for eff8add - Browse repository at this point
Copy the full SHA eff8addView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c4169a - Browse repository at this point
Copy the full SHA 6c4169aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 547b241 - Browse repository at this point
Copy the full SHA 547b241View commit details
Commits on May 10, 2020
-
Mostly by moving/splitting test dependencies to different sections in tox.ini as mypy and pypy don't work well together and it is sufficient to run mypy checks on CPython.
Configuration menu - View commit details
-
Copy full SHA for 9bc16c5 - Browse repository at this point
Copy the full SHA 9bc16c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 28848f8 - Browse repository at this point
Copy the full SHA 28848f8View commit details
Commits on May 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 5519b7a - Browse repository at this point
Copy the full SHA 5519b7aView commit details
Commits on May 16, 2020
-
Configuration menu - View commit details
-
Copy full SHA for fdb9aa2 - Browse repository at this point
Copy the full SHA fdb9aa2View commit details