Name | csb43 JSON |
Version |
1.0.0
JSON |
| download |
home_page | None |
Summary | Parsing and validation utilites for the Spanish standard norm 43 by the 'Consejo Superior Bancario' (CSB) / 'Asociación Española de Banca' (AEB) for storing bank account transactions | [es] Herramientas para leer y validar datos almacenados siguiendo la norma 43 del Consejo Superior Bancario (CSB) / Asociación Española de Banca (CSB). |
upload_time | 2024-11-11 16:01:57 |
maintainer | None |
docs_url | https://pythonhosted.org/csb43/ |
author | None |
requires_python | >=3.8 |
license | LGPL-3.0-or-later |
keywords |
csb
csb43
aeb
aeb43
homebank
ofx
spanish bank
ods
tsv
xls
xlsx
excel
yaml
json
html
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<!--
SPDX-FileCopyrightText: 2024 wmj <wmj.py@gmx.com>
SPDX-License-Identifier: LGPL-3.0-or-later
-->
# csb43
[![docs latest](https://readthedocs.org/projects/csb43/badge/?version=latest)](https://csb43.readthedocs.io/projects/latest/?badge=latest)
Tools for converting from the Spanish banks' format **CSB norm 43** (*CSB43*).
## csb2format
Convert a **CSB/AEB norm 43** file to other file formats.
Supported formats:
- OFX v1.0.3 (SGML) & v2.1.2 (XML)
- [HomeBank CSV](http://homebank.free.fr/help/06csvformat.html)
- *JSON*
- *YAML*
Additional formats are optionally provided by `tablib`:
- *HTML*
- *ODS*: OpenDocument spreadsheet
- *CSV*, *TSV*: comma- or tab- separated values
- *XLS*: Microsoft Excel spreadsheet
- *XLSX*: OOXML spreadsheet
For an exhaustive list, see package `tablib`.
### Options:
usage: csb2format [-h] [-v] [-s] [--no-sepa] [-df] [-d DECIMAL] [-e ENCODING] [--use-float] [-V]
[-f {csv,dbf,homebank,html,jira,json,latex,ods,ofx,ofx1,rst,tsv,xls,xlsx,yaml}] [-E OUTPUT_ENCODING]
csb_file converted_file
Convert a CSB43 file to another format
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
csb43 arguments:
csb_file a csb43 file ('-' for stdin)
-s, --strict strict mode (default: False)
--no-sepa do not convert items to SEPA transfers or direct debits (default: True)
-df, --dayfirst use DDMMYY as date format while parsing the csb43 file instead of YYMMDD (default: True)
-d DECIMAL, --decimal DECIMAL
set the number of decimal places for the money amount type (default: 2)
-e ENCODING, --encoding ENCODING
set the input encoding ('cp850' for standard AEB file) (default: latin1)
--use-float export monetary amounts using binary floating point numbers as a fallback (default: str)
-V, --verbose show csb43 warnings (default: True)
output arguments:
converted_file destination file ('-' for stdout)
-f {csv,dbf,homebank,html,jira,json,latex,ods,ofx,ofx1,rst,tsv,xls,xlsx,yaml}, --format {csv,dbf,homebank,html,jira,json,latex,ods,ofx,ofx1,rst,tsv,xls,xlsx,yaml}
format of the output file (default: ofx)
-E OUTPUT_ENCODING, --output-encoding OUTPUT_ENCODING
set the output encoding (default: utf-8)
### Examples
- Converting to OFX format:
$ csb2format transactions.csb transactions.ofx
$ csb2format --format ofx transactions.csb transactions.ofx
or
$ csb2format transactions.csb - > transactions.ofx
From another app to file
$ get_my_CSB_transactions | csb2format - transactions.ofx
- Converting to XLSX spreadsheet format:
$ csb2format --format xlsx transactions.csb transactions.xlsx
- Using cp850 as the input encoding:
$ csb2format --encoding cp850 --format xlsx transactions.csb transactions.xlsx
### Spreadsheets
*ODS*, *XLS* and *XLSX* files are generated as books, with the first sheet
containing the accounts information, and the subsequent sheets
containing the transactions of each one of the accounts.
### Using Python
Parse a *CSB43* file and print the equivalent *OFX* file
```python
# OFX
from csb43.ofx import converter as ofx_converter
from csb43.aeb43 import read_batch
with open("movimientos.csb", "rb") as fd:
batch = read_batch(fd)
# print to stdout
print(ofx_converter.convert_from_aeb43(batch))
```
Parse a *CSB43* file and print the equivalent in a tabular or
dictionary-like file format
```python
from csb43 import read_batch, formats
with open("movimientos.csb", "rb") as fd:
batch = read_batch(fd)
# print 'yaml' format to stdout
o = formats.convert_from_aeb43(batch, 'yaml')
print(o.yaml)
# write 'xlsx' format to file
o = formats.convert_from_aeb43(batch, 'xlsx')
with open("movimientos.xlsx", "wb") as f:
f.write(o.xlsx)
```
Build an AEB43 with a custom context:
```python
import dataclasses
from csb43 import read_batch, get_current_context
# custom context
ctx = dataclasses.replace(get_current_context(), strict=True)
with open("movimientos.csb", "rb") as fd:
batch = read_batch(fd, context=context)
# scoped context
with get_current_context().scoped(strict=True):
with open("movimientos.csb", "rb") as fd:
batch = read_batch(fd)
```
<!--
SPDX-FileCopyrightText: 2024 wmj <wmj.py@gmx.com>
SPDX-License-Identifier: LGPL-3.0-or-later
-->
## Installing
Basic functionality (conversion to json, homebank and OFX)
$ pip install csb43
Conversion to YAML
$ pip install csb43[yaml]
Conversion to basic Tablib formats
$ pip install csb43[basic_formats]
Conversion to all Tablib formats
$ pip install csb43[formats]
Conversion to all supported formats
$ pip install csb43[all]
<!--
SPDX-FileCopyrightText: 2024 wmj <wmj.py@gmx.com>
SPDX-License-Identifier: LGPL-3.0-or-later
-->
## Changelog
### 1.0.0
- Removed code marked as deprecated in version 0.10.0.
- Fall back to numerical currency code if no letter_3 code is found by pycountry.
- Add table of historical ISO-4217 currency codes, needed to support Spanish records that have not been converted from Peseta to Euro.
- Fix: arguments passed to a record constructor were not applied to the bytes representation.
- Fail or warn if a floating-point number cannot be properly represented as a fixed-point number.
### 0.10.1
- Allow records with different sizes due to a wrong number of spaces
### 0.10.0
- BREAKING CHANGES!
- Dropped support for python < 3.8. If you need support for old versions, please do not upgrade.
- New subpackage `csb43.aeb43`: CSB43 reimplemented using field descriptors:
- the original binary record is kept as the internal representation
- consistent behaviour for field types (money, currency, int, string, etc...)
- validation failures will raise ValidationException o ValidationWarning depending of their gravity
- parsing of SEPA transfers and SEPA direct debits information stored in optional items in transactions.
- Subpackage `csb43.csb43` has been deprecated and it will be removed in a future version (and every package object that use it).
- Classes and functions using camel case have been deprecated and they will be removed in a future version.
- Moved package settings from `setup.py` to `pyproject.toml`
- Updated dependencies.
### 0.9.3
- Add support for Python 3.12 (thanks to Cédric Krier)
### 0.9.2
- Fixed setuptool's deprecation warning on python==3.10 (thanks to @mb)
- Fixed duplicated documentation of the same objects by sphinx (thanks to @mb)
### 0.9.1
- Added python_requires >= 3.6 (thanks to Cédric Krier)
### 0.9.0
- Dropped support for Python 2 (thanks to Sergi Almacellas)
- Added support for Python 3.8 and 3.9 (thanks to Sergi Almacellas)
- Added compatibility with tablib >= 1.0.0 (thanks to Sergi Almacellas)
- Type hinting
### 0.8.4
- Fixed tablib requirement (< 1.0.0)
- Fixed parsing of records with code 00 (thanks to Uttam Sharma)
### 0.8.2
- Do not fail with C locale (thanks to Cédric Krier)
### 0.8.1
- Fixed decimal values conversion in JSON and tabular formats (thanks to Harshad Modi).
- Fixed OFX validation (ORIGCURRENCY field).
- An error is raised when the currency code is not found.
### 0.8
- Text values are stored as string instead of bytes (thanks to Sergi Almacellas)
- Warnings are raised using the 'warnings' module.
- An encoding where control characters are different from ascii is not allowed. An exception will be raised.
- csb2format: added encoding as a new parameter.
### 0.7
- Defined installation targets: `yaml` and `formats` (thanks to Sergi Almacellas & Cédric Krier).
- Updated README file (thanks to Sergi Almacellas).
- Removed `simplejson` dependency.
- Dates stored as `date` instead of `datetime` (thanks to Sergi Almacellas).
- Monetary amounts are represented as `Decimal` instead to `float` in order to prevent representation and rounding issues. These fields are exported as a string by default, conversion to float is optional (thanks to Sergi Almacellas & Cédric Krier).
- Added temprary dependency to `openpyxl < 2.5.0` to prevent issue while trying to export to xlsx.
### 0.6
- Fixed usage of pycountry >= 16.10.23rc1 objects (thanks to Alex Barcelo).
- Package refactored to simplify the structure.
### 0.5
- Fixed conversion to binary formats in python 2.
- `tablib` backend supported in python 3.
- N43 warnings are silenced by default.
### 0.4
- OFX v 1.0.3 supported.
- OFX Tag inv401source renamed to inv401ksource.
- Unique transaction id when generating OFX file (thanks to Julien Moutte).
### 0.3.4
- Most Spanish N43 files will use LATIN-1 encoding not pure ASCII (thanks to Julien Moutte).
- Regular expression to check for account name is too limited (thanks to Julien Moutte).
- Reference1 can hold non numerical data in information mode 1 and 2 (thanks to Julien Moutte).
- Currency data as an inmutable list.
### 0.3.3
- Fixed deficiencies in OFX conversion (thanks to Andrea Santambrogio). Checked XML validation against OFX2_Protocol.xsd
### 0.3
- Compatible with Python 3 (except "tablib" dependencies)
### 0.2.3
- Fixed shebang header of csb2format
### 0.2.2
- csb2format adapted to pyinstaller
- Executable file for Windows
### 0.2.1
- Trivial changes
### 0.2
- Several bugfixes
- Bidirectional use of objects (file -> object, object -> file)
- Added conversion to spreadsheets, dict and tabular formats (thanks to tablib)
- Localization to Spanish
- Sphinx documentation
### 0.1
- Initial release
Raw data
{
"_id": null,
"home_page": null,
"name": "csb43",
"maintainer": null,
"docs_url": "https://pythonhosted.org/csb43/",
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "csb, csb43, aeb, aeb43, homebank, ofx, Spanish bank, ods, tsv, xls, xlsx, excel, yaml, json, html",
"author": null,
"author_email": "wmj <wmj.py@gmx.com>",
"download_url": "https://files.pythonhosted.org/packages/d2/e6/d0829b4bbda9810f9fba94e8d50e2f954aa0b1a07a6f2b797ed4828cd91c/csb43-1.0.0.tar.gz",
"platform": null,
"description": "<!--\nSPDX-FileCopyrightText: 2024 wmj <wmj.py@gmx.com>\n\nSPDX-License-Identifier: LGPL-3.0-or-later\n-->\n\n# csb43\n\n[![docs latest](https://readthedocs.org/projects/csb43/badge/?version=latest)](https://csb43.readthedocs.io/projects/latest/?badge=latest)\n\nTools for converting from the Spanish banks' format **CSB norm 43** (*CSB43*).\n\n\n## csb2format\n\nConvert a **CSB/AEB norm 43** file to other file formats.\n\nSupported formats:\n\n- OFX v1.0.3 (SGML) & v2.1.2 (XML)\n- [HomeBank CSV](http://homebank.free.fr/help/06csvformat.html)\n- *JSON*\n- *YAML*\n\nAdditional formats are optionally provided by `tablib`:\n\n- *HTML*\n- *ODS*: OpenDocument spreadsheet\n- *CSV*, *TSV*: comma- or tab- separated values\n- *XLS*: Microsoft Excel spreadsheet\n- *XLSX*: OOXML spreadsheet\n\nFor an exhaustive list, see package `tablib`.\n\n\n### Options:\n\n usage: csb2format [-h] [-v] [-s] [--no-sepa] [-df] [-d DECIMAL] [-e ENCODING] [--use-float] [-V]\n [-f {csv,dbf,homebank,html,jira,json,latex,ods,ofx,ofx1,rst,tsv,xls,xlsx,yaml}] [-E OUTPUT_ENCODING]\n csb_file converted_file\n\n Convert a CSB43 file to another format\n\n options:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n\n csb43 arguments:\n csb_file a csb43 file ('-' for stdin)\n -s, --strict strict mode (default: False)\n --no-sepa do not convert items to SEPA transfers or direct debits (default: True)\n -df, --dayfirst use DDMMYY as date format while parsing the csb43 file instead of YYMMDD (default: True)\n -d DECIMAL, --decimal DECIMAL\n set the number of decimal places for the money amount type (default: 2)\n -e ENCODING, --encoding ENCODING\n set the input encoding ('cp850' for standard AEB file) (default: latin1)\n --use-float export monetary amounts using binary floating point numbers as a fallback (default: str)\n -V, --verbose show csb43 warnings (default: True)\n\n output arguments:\n converted_file destination file ('-' for stdout)\n -f {csv,dbf,homebank,html,jira,json,latex,ods,ofx,ofx1,rst,tsv,xls,xlsx,yaml}, --format {csv,dbf,homebank,html,jira,json,latex,ods,ofx,ofx1,rst,tsv,xls,xlsx,yaml}\n format of the output file (default: ofx)\n -E OUTPUT_ENCODING, --output-encoding OUTPUT_ENCODING\n set the output encoding (default: utf-8)\n\n\n### Examples\n\n- Converting to OFX format:\n\n $ csb2format transactions.csb transactions.ofx\n\n $ csb2format --format ofx transactions.csb transactions.ofx\n\n or\n\n $ csb2format transactions.csb - > transactions.ofx\n\n From another app to file\n\n $ get_my_CSB_transactions | csb2format - transactions.ofx\n\n- Converting to XLSX spreadsheet format:\n\n $ csb2format --format xlsx transactions.csb transactions.xlsx\n\n- Using cp850 as the input encoding:\n\n $ csb2format --encoding cp850 --format xlsx transactions.csb transactions.xlsx\n\n\n### Spreadsheets\n\n\n*ODS*, *XLS* and *XLSX* files are generated as books, with the first sheet\ncontaining the accounts information, and the subsequent sheets\ncontaining the transactions of each one of the accounts.\n\n\n### Using Python\n\nParse a *CSB43* file and print the equivalent *OFX* file\n\n\n```python\n# OFX\nfrom csb43.ofx import converter as ofx_converter\nfrom csb43.aeb43 import read_batch\n\nwith open(\"movimientos.csb\", \"rb\") as fd:\n batch = read_batch(fd)\n\n# print to stdout\nprint(ofx_converter.convert_from_aeb43(batch))\n```\n\nParse a *CSB43* file and print the equivalent in a tabular or\ndictionary-like file format\n\n\n```python\nfrom csb43 import read_batch, formats\n\nwith open(\"movimientos.csb\", \"rb\") as fd:\n batch = read_batch(fd)\n\n# print 'yaml' format to stdout\no = formats.convert_from_aeb43(batch, 'yaml')\nprint(o.yaml)\n\n# write 'xlsx' format to file\no = formats.convert_from_aeb43(batch, 'xlsx')\nwith open(\"movimientos.xlsx\", \"wb\") as f:\n f.write(o.xlsx)\n```\n\nBuild an AEB43 with a custom context:\n\n```python\nimport dataclasses\nfrom csb43 import read_batch, get_current_context\n\n# custom context\nctx = dataclasses.replace(get_current_context(), strict=True)\nwith open(\"movimientos.csb\", \"rb\") as fd:\n batch = read_batch(fd, context=context)\n\n# scoped context\nwith get_current_context().scoped(strict=True):\n with open(\"movimientos.csb\", \"rb\") as fd:\n batch = read_batch(fd)\n```\n<!--\nSPDX-FileCopyrightText: 2024 wmj <wmj.py@gmx.com>\n\nSPDX-License-Identifier: LGPL-3.0-or-later\n-->\n\n## Installing\n\nBasic functionality (conversion to json, homebank and OFX)\n\n $ pip install csb43\n\n\nConversion to YAML\n\n $ pip install csb43[yaml]\n\n\nConversion to basic Tablib formats\n\n $ pip install csb43[basic_formats]\n\n\nConversion to all Tablib formats\n\n $ pip install csb43[formats]\n\nConversion to all supported formats\n\n $ pip install csb43[all]\n\n\n\n<!--\nSPDX-FileCopyrightText: 2024 wmj <wmj.py@gmx.com>\n\nSPDX-License-Identifier: LGPL-3.0-or-later\n-->\n\n## Changelog\n\n### 1.0.0\n\n- Removed code marked as deprecated in version 0.10.0.\n- Fall back to numerical currency code if no letter_3 code is found by pycountry.\n- Add table of historical ISO-4217 currency codes, needed to support Spanish records that have not been converted from Peseta to Euro.\n- Fix: arguments passed to a record constructor were not applied to the bytes representation.\n- Fail or warn if a floating-point number cannot be properly represented as a fixed-point number.\n\n### 0.10.1\n\n- Allow records with different sizes due to a wrong number of spaces\n\n### 0.10.0\n\n- BREAKING CHANGES!\n- Dropped support for python < 3.8. If you need support for old versions, please do not upgrade.\n- New subpackage `csb43.aeb43`: CSB43 reimplemented using field descriptors:\n - the original binary record is kept as the internal representation\n - consistent behaviour for field types (money, currency, int, string, etc...)\n - validation failures will raise ValidationException o ValidationWarning depending of their gravity\n - parsing of SEPA transfers and SEPA direct debits information stored in optional items in transactions.\n- Subpackage `csb43.csb43` has been deprecated and it will be removed in a future version (and every package object that use it).\n- Classes and functions using camel case have been deprecated and they will be removed in a future version.\n- Moved package settings from `setup.py` to `pyproject.toml`\n- Updated dependencies.\n\n### 0.9.3\n\n- Add support for Python 3.12 (thanks to C\u00e9dric Krier)\n\n### 0.9.2\n\n- Fixed setuptool's deprecation warning on python==3.10 (thanks to @mb)\n- Fixed duplicated documentation of the same objects by sphinx (thanks to @mb)\n\n### 0.9.1\n\n- Added python_requires >= 3.6 (thanks to C\u00e9dric Krier)\n\n### 0.9.0\n\n- Dropped support for Python 2 (thanks to Sergi Almacellas)\n- Added support for Python 3.8 and 3.9 (thanks to Sergi Almacellas)\n- Added compatibility with tablib >= 1.0.0 (thanks to Sergi Almacellas)\n- Type hinting\n\n### 0.8.4\n\n- Fixed tablib requirement (< 1.0.0)\n- Fixed parsing of records with code 00 (thanks to Uttam Sharma)\n\n### 0.8.2\n\n- Do not fail with C locale (thanks to C\u00e9dric Krier)\n\n### 0.8.1\n\n- Fixed decimal values conversion in JSON and tabular formats (thanks to Harshad Modi).\n- Fixed OFX validation (ORIGCURRENCY field).\n- An error is raised when the currency code is not found.\n\n### 0.8\n\n- Text values are stored as string instead of bytes (thanks to Sergi Almacellas)\n- Warnings are raised using the 'warnings' module.\n- An encoding where control characters are different from ascii is not allowed. An exception will be raised.\n- csb2format: added encoding as a new parameter.\n\n### 0.7\n\n- Defined installation targets: `yaml` and `formats` (thanks to Sergi Almacellas & C\u00e9dric Krier).\n- Updated README file (thanks to Sergi Almacellas).\n- Removed `simplejson` dependency.\n- Dates stored as `date` instead of `datetime` (thanks to Sergi Almacellas).\n- Monetary amounts are represented as `Decimal` instead to `float` in order to prevent representation and rounding issues. These fields are exported as a string by default, conversion to float is optional (thanks to Sergi Almacellas & C\u00e9dric Krier).\n- Added temprary dependency to `openpyxl < 2.5.0` to prevent issue while trying to export to xlsx.\n\n### 0.6\n\n- Fixed usage of pycountry >= 16.10.23rc1 objects (thanks to Alex Barcelo).\n- Package refactored to simplify the structure.\n\n### 0.5\n\n- Fixed conversion to binary formats in python 2.\n- `tablib` backend supported in python 3.\n- N43 warnings are silenced by default.\n\n### 0.4\n\n- OFX v 1.0.3 supported.\n- OFX Tag inv401source renamed to inv401ksource.\n- Unique transaction id when generating OFX file (thanks to Julien Moutte).\n\n### 0.3.4\n\n- Most Spanish N43 files will use LATIN-1 encoding not pure ASCII (thanks to Julien Moutte).\n- Regular expression to check for account name is too limited (thanks to Julien Moutte).\n- Reference1 can hold non numerical data in information mode 1 and 2 (thanks to Julien Moutte).\n- Currency data as an inmutable list.\n\n### 0.3.3\n\n- Fixed deficiencies in OFX conversion (thanks to Andrea Santambrogio). Checked XML validation against OFX2_Protocol.xsd\n\n### 0.3\n\n- Compatible with Python 3 (except \"tablib\" dependencies)\n\n### 0.2.3\n\n- Fixed shebang header of csb2format\n\n\n### 0.2.2\n\n- csb2format adapted to pyinstaller\n- Executable file for Windows\n\n### 0.2.1\n\n- Trivial changes\n\n### 0.2\n\n- Several bugfixes\n- Bidirectional use of objects (file -> object, object -> file)\n- Added conversion to spreadsheets, dict and tabular formats (thanks to tablib)\n- Localization to Spanish\n- Sphinx documentation\n\n### 0.1\n\n- Initial release\n\n\n",
"bugtrack_url": null,
"license": "LGPL-3.0-or-later",
"summary": "Parsing and validation utilites for the Spanish standard norm 43 by the 'Consejo Superior Bancario' (CSB) / 'Asociaci\u00f3n Espa\u00f1ola de Banca' (AEB) for storing bank account transactions | [es] Herramientas para leer y validar datos almacenados siguiendo la norma 43 del Consejo Superior Bancario (CSB) / Asociaci\u00f3n Espa\u00f1ola de Banca (CSB).",
"version": "1.0.0",
"project_urls": {
"BugReports": "https://bitbucket.org/wmj/csb43/issues",
"Documentation": "https://csb43.readthedocs.io",
"Source": "https://bitbucket.org/wmj/csb43"
},
"split_keywords": [
"csb",
" csb43",
" aeb",
" aeb43",
" homebank",
" ofx",
" spanish bank",
" ods",
" tsv",
" xls",
" xlsx",
" excel",
" yaml",
" json",
" html"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0a4ea98866d0ba05272d34bd2b5f48077c9efd16317cd98727e178b8539c4392",
"md5": "686af67358c825991c556b9a872292c1",
"sha256": "3118127b590393552e5257d95011fe70a2a4bc922d6dbbf95caaf9c8861ee044"
},
"downloads": -1,
"filename": "csb43-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "686af67358c825991c556b9a872292c1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 110925,
"upload_time": "2024-11-11T16:01:55",
"upload_time_iso_8601": "2024-11-11T16:01:55.286473Z",
"url": "https://files.pythonhosted.org/packages/0a/4e/a98866d0ba05272d34bd2b5f48077c9efd16317cd98727e178b8539c4392/csb43-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d2e6d0829b4bbda9810f9fba94e8d50e2f954aa0b1a07a6f2b797ed4828cd91c",
"md5": "a40ecdb55cfd99311dfb9cb3223f3520",
"sha256": "7ed39d44c44610e6b55e440c5968777d37b14a27560367ff775eb7ed9ed42935"
},
"downloads": -1,
"filename": "csb43-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "a40ecdb55cfd99311dfb9cb3223f3520",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 407124,
"upload_time": "2024-11-11T16:01:57",
"upload_time_iso_8601": "2024-11-11T16:01:57.882901Z",
"url": "https://files.pythonhosted.org/packages/d2/e6/d0829b4bbda9810f9fba94e8d50e2f954aa0b1a07a6f2b797ed4828cd91c/csb43-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-11 16:01:57",
"github": false,
"gitlab": false,
"bitbucket": true,
"codeberg": false,
"bitbucket_user": "wmj",
"bitbucket_project": "csb43",
"lcname": "csb43"
}