Skip to content
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

Merged
merged 44 commits into from May 16, 2020
Merged

New build system #243

merged 44 commits into from May 16, 2020

Commits on Mar 29, 2020

  1. 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.
    N-Coder committed Mar 29, 2020
    Configuration menu
    Copy the full SHA
    f6544d9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8466e3a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b05ce7d View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2020

  1. 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
    N-Coder committed Apr 4, 2020
    Configuration menu
    Copy the full SHA
    dc8923c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    eae493d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    537823d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    827088e View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2020

  1. Configuration menu
    Copy the full SHA
    f846543 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2020

  1. Configuration menu
    Copy the full SHA
    3cafe53 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2020

  1. Configuration menu
    Copy the full SHA
    e44e4b3 View commit details
    Browse the repository at this point in the history
  2. fix handling of quoted params

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    c79fd0b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    aeb575e View commit details
    Browse the repository at this point in the history
  4. fix src path for pytest

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    92e8a9e View commit details
    Browse the repository at this point in the history
  5. add doc skeleton

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    5a4e681 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    f608e0c View commit details
    Browse the repository at this point in the history
  7. import project files

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    f5c6a16 View commit details
    Browse the repository at this point in the history
  8. set version

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    19b058f View commit details
    Browse the repository at this point in the history
  9. fix sphinx build with poetry

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    6166169 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    00cd53c View commit details
    Browse the repository at this point in the history
  11. fix timezone tests

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    03d9ffa View commit details
    Browse the repository at this point in the history
  12. change coveralls action

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    7b4ec8e View commit details
    Browse the repository at this point in the history
  13. try codecov

    N-Coder committed Apr 10, 2020
    Configuration menu
    Copy the full SHA
    7d76bec View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2020

  1. bugfixes

    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    b9e6ab9 View commit details
    Browse the repository at this point in the history
  2. add bumpversion

    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    03c549c View commit details
    Browse the repository at this point in the history
  3. Bump version: 0.8.0-dev → 0.8.0

    this was done using `bumpversion --verbose release`
    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    20bade0 View commit details
    Browse the repository at this point in the history
  4. Bump version: 0.8.0 → 0.9.0-dev

    this was done using `bumpversion --verbose minor`
    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    9fb5bdf View commit details
    Browse the repository at this point in the history
  5. Bump version: 0.9.0-dev → 0.9.0

    this was done using `bumpversion --verbose release`
    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    07a2577 View commit details
    Browse the repository at this point in the history
  6. separate src inspection (flake8+mypy src/) from package testing (pyte…

    …st tests/) to fix PATH problems
    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    aab3444 View commit details
    Browse the repository at this point in the history
  7. bugfixes

    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    c7f193d View commit details
    Browse the repository at this point in the history
  8. Bump version: 0.9.0 → 0.9.1

    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    109f1ad View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    4e7b553 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    6673720 View commit details
    Browse the repository at this point in the history
  11. remove old files

    N-Coder committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    281c9f6 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2020

  1. Configuration menu
    Copy the full SHA
    3365faf View commit details
    Browse the repository at this point in the history
  2. checker happiness

    `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
    N-Coder committed Apr 12, 2020
    Configuration menu
    Copy the full SHA
    aa0447e View commit details
    Browse the repository at this point in the history
  3. more checker happiness

    N-Coder committed Apr 12, 2020
    Configuration menu
    Copy the full SHA
    83bda5c View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2020

  1. Apply suggestions from code review

    Co-Authored-By: Tom Schraitle <tomschr@users.noreply.github.com>
    N-Coder and tomschr committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    4927e0f View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2020

  1. Configuration menu
    Copy the full SHA
    eff8add View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6c4169a View commit details
    Browse the repository at this point in the history
  3. fix tox.ini

    N-Coder committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    547b241 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2020

  1. add pypy support

    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.
    N-Coder committed May 10, 2020
    Configuration menu
    Copy the full SHA
    9bc16c5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    28848f8 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2020

  1. Configuration menu
    Copy the full SHA
    5519b7a View commit details
    Browse the repository at this point in the history

Commits on May 16, 2020

  1. update test/dev dependencies

    N-Coder committed May 16, 2020
    Configuration menu
    Copy the full SHA
    fdb9aa2 View commit details
    Browse the repository at this point in the history