Quiffen

Latest version: v2.0.13

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 4

2.0.1

What's Changed
* Fix bug with child categories being overridden by isaacharrisholt in https://github.com/isaacharrisholt/quiffen/pull/38


**Full Changelog**: https://github.com/isaacharrisholt/quiffen/compare/v2.0.0...v2.0.1

2.0.0

This is a massive overhaul to Quiffen.

Not only does it massively reduce the amount of code in the package (from 3167 total lines to 2692!), but it also adds new features, fixes some bugs and greatly improves the overall readability and structure of the code, which should make it much easier to maintain going forwards.

Changelog

New

- Migration to Pydantic for validation
- Uses a custom `BaseModel`
- Added `Security` class (30, 33)
- Added `categories` list to `Class` objects so they can act as a container
- Vastly improved how `Category` tree interaction works with new methods such as `Category.merge`
- `merge()` methods also added to `Account` and `Class` types
- Ability to add custom fields to all Quiffen types for both reading from and writing to QIF files (see 16)
- Added `TransactionLike` as an alias for `Union[Transaction, Investment, Split]`
- Most objects now support the `to_qif` method to get a QIF representation of just that object

Upgrades

- Better type hinting of functions
- Much, much better test coverage (~250 tests!)
- GitHub Actions workflows
- Greatly improved the `quiffen.utils.parse_date` function with the `python-dateutil` package

Breaking Changes

- **Removed support for Python 3.6 and Python 3.7. Quiffen now only supports Python 3.8 and above**
- In most cases, `quiffen.core` modules have been renamed to use the singular noun
- e.g. `quiffen.core.transactions` -> `quiffen.core.transaction`
- `quiffen.core.categories_classes` has been split into `quiffen.core.category` and `quiffen.core.class_type`
- `quiffen.core.transactions` has been split into `quiffen.core.transaction`, `quiffen.core.investment` and `quiffen.core.split`
- Most `__str__` and `__eq__` methods have changed
- `to_dict` methods now return the Pydantic dictionary representation of the object
- Any methods using the `day_first` parameter now have that parameter defaulted to `False` to better support
iso-formatted dates

<details><summary>Click to see module-specific changes</summary>

`quiffen.core.account`

- `VALID_ACCOUNT_TYPES` is now an enum: `AccountType`
- Aliased to `quiffen.AccountType`
- Used for `Account.add_transaction`
- Note: the enum inherits from `str`, so passing string values will still work
- `Account.__eq__` now checks `Account.account_type` as well as `Account.name`

`quiffen.core.category`

- `Category.expense` and `Category.income` booleans have been replaced with `Category.category_type` which
takes a `CategoryType` enum
- `Category.__eq__` now checks the whole object
- `Category.__str__` now returns a proper string representation of the category, not just the `__repr__` result
- `Category.find_category` has been renamed to `Category.find_child`
- `Category.find_child` no longer raises an exception when no child is found, instead returning `None`

`quiffen.core.class_type`

- No breaking changes

`quiffen.core.investment`

- `Investment.__eq__` now checks the whole object

`quiffen.core.qif`

- `Qif.to_dicts` has been removed
- `Qif._read_qif` has been removed
- `Qif._assert_type` has been removed
- Methods that accepted a `data_type` argument (`to_csv`, `to_dataframe`) now taken a `QifDataType` enum
- `Qif.__str__` has been changed
- `Qif.add_*` methods will now merge the objects instead of overwriting them when the object already exists
- The `separator` argument of `Qif.to_csv` has been renamed to `delimiter`
- `Qif.to_csv` no longer takes a `sub_separator` argument and writes UNIX-style CSVs

`quiffen.core.split`

- No breaking changes

`quiffen.core.transaction`

- The `TransactionList` type is now just an alias for `List[TransactionLike]`
- `Transaction.remove_split` has been renamed to `Transaction.remove_splits` and the `multiple` argument has been deprecated
- Additionally, if no filters are provided, all splits are removed

`quiffen.utils`

- `quiffen.utils.create_categories` is now `quiffen.add_categories_to_container`

</details>

Fixes

- 29 and 31
- 23
- 32
- 30
- 28

1.2.4

What's Changed
* 21 - Correct README.rst by isaacharrisholt in https://github.com/isaacharrisholt/quiffen/pull/25
* 22 - allow spaces in header lines by isaacharrisholt in https://github.com/isaacharrisholt/quiffen/pull/27
* 24 - Remove global decimal context setting on import by isaacharrisholt in https://github.com/isaacharrisholt/quiffen/pull/26


**Full Changelog**: https://github.com/isaacharrisholt/quiffen/compare/v1.2.2...v1.2.4

1.2.2

What's Changed
* Robustly handle memo parsing (bug fix) and add basic build by plandes in https://github.com/isaacharrisholt/quiffen/pull/15
* Avoid Float numbers for Decimal tests by paulmcq in https://github.com/isaacharrisholt/quiffen/pull/20
* Issue18 by paulmcq in https://github.com/isaacharrisholt/quiffen/pull/19

New Contributors
* plandes made their first contribution in https://github.com/isaacharrisholt/quiffen/pull/15
* paulmcq made their first contribution in https://github.com/isaacharrisholt/quiffen/pull/20

**Full Changelog**: https://github.com/isaacharrisholt/quiffen/compare/v1.2.1...v1.2.2

1.2.1

What's Changed
* Resolve issues found when testing with a qif file generated by Moneywell by matt-cross in https://github.com/isaacharrisholt/quiffen/pull/13

New Contributors
* matt-cross made their first contribution in https://github.com/isaacharrisholt/quiffen/pull/13

**Full Changelog**: https://github.com/isaacharrisholt/quiffen/compare/v1.2.0...v1.2.1

1.2.0

- Added ability to have subcategories specified on a separate line in the transaction.
- Updated tests
- Fixed some bugs with Decimal

**Full Changelog**: https://github.com/isaacharrisholt/quiffen/compare/v1.1.2...v1.2.0

Page 3 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.