# Mettle #
Bitsmiths-Mettle is the supporting code generators and python libraries for the Mettle project.
See our <a href="https://bitbucket.org/bitsmiths_za/mettle.git">repo</a> and main *README* for more details!
## Requirements ##
Python 3.10+
## Installation ##
```console
$ pip install bitsmiths-mettle
---> 100%
```
## Change History ##
### 2.2.9 ###
| Type | Description |
| ------ | ----------- |
| Fix | Fixed an exception priority issue with the `mettle-psycopg` driver where reset connections were being caught by the lock exception. |
### 2.2.8 ###
| Type | Description |
| ------ | ----------- |
| New | The `mettle-sql-build` entry point in the python package now accepts wild card inputs. |
### 2.2.7 ###
| Type | Description |
| ------ | ----------- |
| Fix | Python database table generetor respects not null columns that are integers and floats properly for pydantic and dataclass generation. |
### 2.2.6 ###
| Type | Description |
| ------ | ----------- |
| Fix | The python encoded.databases[postgresql] driver was not handling null floats. Bug squashed. |
### 2.2.5 ###
| Type | Description |
| ------ | ----------- |
| Fix | Changed PostgreSQL package dependency from `postgres` to `postgresql`. |
| Fix | The python braze serializers now use `isinstance` instead of `type` when checking value types. |
### 2.2.4 ###
| Type | Description |
| ------ | ----------- |
| Fix | Improved package dependencies, thank-you Bradley Kirton. |
| New | Added a new optional `global-settings.file-header` setting to projects. Allows customization or removal or the generated header in all generated files. |
### 2.2.3 ###
| Type | Description |
| ------ | ----------- |
| New | Implemented auto (reset) to database connections on failure for all python database drivers. (This excludes `asynpg` because it uses a pool that does it for us). |
| Bug | Fixed a python async code generation issue, where some `methods` and `with` statements were not using await or async. |
### 2.2.2 ###
| Type | Description |
| ------ | ----------- |
| Fix | Fixed an import issue with the Braze TCP overload in python. |
### 2.2.1 ###
| Type | Description |
| ------ | ----------- |
| Fix | Applied `couplet` identifier improvement to braze couplets on python. |
### 2.2.0 ###
| Type | Description |
| ------ | ----------- |
| New | Added a `database_name()` method to all db connections. |
| New | Select one statements that fail, will now raise the new `DBNotFound` error code. |
| New | Added `psycopg3` database extension for `python3`. |
| New | Added `psycopg3 async` database extension for `python3`. |
| New | Python generation for `__slots__` added, requires python 3.10 and up. |
| New | Added a `must_exist` optional parameter to the python generated `fetch()` methods which will raise an error if the fetch fails. |
| Breaking | In the python generated `fetch_all()` methods, renamed `clearList` to `clear_list`. |
| Breaking | Improved the genartion of `couplet` identifier names. This may cause some couplets to be generated with differnt names. |
| Bug | Foreign key, and unique key violations now proplerly thrown for all the python db drivers. |
### 2.1.14 ###
| Type | Description |
| ------ | ----------- |
| New | Added a new python generator option `fetch.method`. Options are `c++` which is the legacy option and `python` which adds a fetch iterator method and creates a new object for each fetch instead of reusing the existing `orec`. |
| New | Removed the `__del__` dunder from the python DAO code generation as it is not needed. |
### 2.1.13 ###
| Type | Description |
| ------ | ----------- |
| New | Angular makefile generators can now be dynamically extended with a different CC, and TARGS as well as have optional overwrite commands. |
| Bug | Fixed configuration bug from the 2.1.12 where a null dataclass would cause a generation error. |
### 2.1.12 ###
| Type | Description |
| ------ | ----------- |
| New | Python database and braze models can now be generated with (pydantic, or dataclass, or attrs) as an option. |
| New | Python database and braze models can now toggle (pk, serializer, dav, clear) features an and off. |
### 2.1.11 ###
| Type | Description |
| ---- | ----------- |
| Bug | Fixed a refactor of `errCode` to `err_code` that was not rippled through some of the base library code/ |
### 2.1.10 ###
| Type | Description |
| ---- | ----------- |
| Change | General typing improvements, and minor bug fixes. |
## License ##
This project is licensed under the terms of the MIT license.
Raw data
{
"_id": null,
"home_page": "https://bitbucket.org/bitsmiths_za/mettle.git",
"name": "bitsmiths-mettle",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "generators,libraries",
"author": "Nicolas Milicevic, Steven van Niekerk, Darrly Daniels",
"author_email": "nicolas@bitsmiths.co.za, steven@bitsmiths.co.za, darryl@bitsmiths.co.za",
"download_url": "https://files.pythonhosted.org/packages/40/d7/cb3fa579f2b2a3784e58de1d1beaea8399f2e1d5d721526d6f2c0326661f/bitsmiths-mettle-2.2.9.tar.gz",
"platform": "unix",
"description": "# Mettle #\n\nBitsmiths-Mettle is the supporting code generators and python libraries for the Mettle project.\n\nSee our <a href=\"https://bitbucket.org/bitsmiths_za/mettle.git\">repo</a> and main *README* for more details!\n\n\n## Requirements ##\n\nPython 3.10+\n\n\n## Installation ##\n\n```console\n$ pip install bitsmiths-mettle\n\n---> 100%\n```\n\n## Change History ##\n\n### 2.2.9 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | Fixed an exception priority issue with the `mettle-psycopg` driver where reset connections were being caught by the lock exception. |\n\n\n### 2.2.8 ###\n\n| Type | Description |\n| ------ | ----------- |\n| New | The `mettle-sql-build` entry point in the python package now accepts wild card inputs. |\n\n### 2.2.7 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | Python database table generetor respects not null columns that are integers and floats properly for pydantic and dataclass generation. |\n\n### 2.2.6 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | The python encoded.databases[postgresql] driver was not handling null floats. Bug squashed. |\n\n### 2.2.5 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | Changed PostgreSQL package dependency from `postgres` to `postgresql`. |\n| Fix | The python braze serializers now use `isinstance` instead of `type` when checking value types. |\n\n### 2.2.4 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | Improved package dependencies, thank-you Bradley Kirton. |\n| New | Added a new optional `global-settings.file-header` setting to projects. Allows customization or removal or the generated header in all generated files. |\n\n\n### 2.2.3 ###\n\n| Type | Description |\n| ------ | ----------- |\n| New | Implemented auto (reset) to database connections on failure for all python database drivers. (This excludes `asynpg` because it uses a pool that does it for us). |\n| Bug | Fixed a python async code generation issue, where some `methods` and `with` statements were not using await or async. |\n\n\n### 2.2.2 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | Fixed an import issue with the Braze TCP overload in python. |\n\n### 2.2.1 ###\n\n| Type | Description |\n| ------ | ----------- |\n| Fix | Applied `couplet` identifier improvement to braze couplets on python. |\n\n### 2.2.0 ###\n\n| Type | Description |\n| ------ | ----------- |\n| New | Added a `database_name()` method to all db connections. |\n| New | Select one statements that fail, will now raise the new `DBNotFound` error code. |\n| New | Added `psycopg3` database extension for `python3`. |\n| New | Added `psycopg3 async` database extension for `python3`. |\n| New | Python generation for `__slots__` added, requires python 3.10 and up. |\n| New | Added a `must_exist` optional parameter to the python generated `fetch()` methods which will raise an error if the fetch fails. |\n| Breaking | In the python generated `fetch_all()` methods, renamed `clearList` to `clear_list`. |\n| Breaking | Improved the genartion of `couplet` identifier names. This may cause some couplets to be generated with differnt names. |\n| Bug | Foreign key, and unique key violations now proplerly thrown for all the python db drivers. |\n\n### 2.1.14 ###\n\n| Type | Description |\n| ------ | ----------- |\n| New | Added a new python generator option `fetch.method`. Options are `c++` which is the legacy option and `python` which adds a fetch iterator method and creates a new object for each fetch instead of reusing the existing `orec`. |\n| New | Removed the `__del__` dunder from the python DAO code generation as it is not needed. |\n\n### 2.1.13 ###\n\n| Type | Description |\n| ------ | ----------- |\n| New | Angular makefile generators can now be dynamically extended with a different CC, and TARGS as well as have optional overwrite commands. |\n| Bug | Fixed configuration bug from the 2.1.12 where a null dataclass would cause a generation error. |\n\n### 2.1.12 ###\n\n| Type | Description |\n| ------ | ----------- |\n| New | Python database and braze models can now be generated with (pydantic, or dataclass, or attrs) as an option. |\n| New | Python database and braze models can now toggle (pk, serializer, dav, clear) features an and off. |\n\n### 2.1.11 ###\n\n| Type | Description |\n| ---- | ----------- |\n| Bug | Fixed a refactor of `errCode` to `err_code` that was not rippled through some of the base library code/ |\n\n\n### 2.1.10 ###\n\n| Type | Description |\n| ---- | ----------- |\n| Change | General typing improvements, and minor bug fixes. |\n\n\n\n## License ##\n\nThis project is licensed under the terms of the MIT license.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A three tier systems code generator that targets serveral databases and languages",
"version": "2.2.9",
"split_keywords": [
"generators",
"libraries"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "efe049c3b57d6bd405fcfd346004aced4c890181b3ccc9e95db84cd59436ceac",
"md5": "61d9134f8e8231e9cff03d66f612fae4",
"sha256": "72b9b64ae89f7c47571970488abfa85ec25953ed6da1612508523b52e8bff400"
},
"downloads": -1,
"filename": "bitsmiths_mettle-2.2.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "61d9134f8e8231e9cff03d66f612fae4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 322856,
"upload_time": "2023-04-12T15:26:00",
"upload_time_iso_8601": "2023-04-12T15:26:00.802699Z",
"url": "https://files.pythonhosted.org/packages/ef/e0/49c3b57d6bd405fcfd346004aced4c890181b3ccc9e95db84cd59436ceac/bitsmiths_mettle-2.2.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "40d7cb3fa579f2b2a3784e58de1d1beaea8399f2e1d5d721526d6f2c0326661f",
"md5": "80318e5817280b2ad35ac32f8afd554f",
"sha256": "c9c07d78627167c02fee56c25dc079824975121a3ee62f06f1e85cc0aad6d765"
},
"downloads": -1,
"filename": "bitsmiths-mettle-2.2.9.tar.gz",
"has_sig": false,
"md5_digest": "80318e5817280b2ad35ac32f8afd554f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 167137,
"upload_time": "2023-04-12T15:26:03",
"upload_time_iso_8601": "2023-04-12T15:26:03.676026Z",
"url": "https://files.pythonhosted.org/packages/40/d7/cb3fa579f2b2a3784e58de1d1beaea8399f2e1d5d721526d6f2c0326661f/bitsmiths-mettle-2.2.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-12 15:26:03",
"github": false,
"gitlab": false,
"bitbucket": true,
"bitbucket_user": "bitsmiths_za",
"bitbucket_project": "mettle.git",
"lcname": "bitsmiths-mettle"
}