Skip to main content

Anson for Python3

Project description

PyPI version

Anson.py3

Json (de)serialize module in Python 3.

from anson.io.odysz.anson import Anson

Install from testpypi

pip install anson.py3

Guide

  • Mapping Java vs Python package structure

Python packages tree is in format of path/to/module/class, while java has no node of module:

├── io
│   └── oz
│       ├── jserv
│       │   └── docs
│       │       └── syn
│       │           └── singleton.py "class AppSettings"
│       └── syn.py "class AnRegistry, SynodeConfig, SynOrg, YellowPages"

Java packages tree:

.
└── io
    └── oz
        └── jserv
            └── docs
                └── syn
                    ├── singleton
                    │   └── AppSettings.java
.
└── io
    └── oz
        └── syn
            ├── AnRegistry.java
            ├── SynodeConfig.java
            ├── SynOrg.java
            └── YellowPages.java

Anson.py3 is using package name path with a top level path. Say, if the json envelope define as

{ type: io.oz.syn.AnRegistry,
  ...
}

and the user's project include two parts:

  • The semantics.py3 name space for json protocol package, the user types.

Which is currently need to be manually keep all fields the same with the java end. Start the project from the source:

github.com/odys-z/antson/semantics.py3

You need use the following commands to build and install it, so it can be imported to the application project.

    python -m build
    pip install dist/semantics_py3-#.#.#-py3-none-any.whl
  • The (client end) source project for applications.

In main.py, call

    from semanticshare.your.package import Your_class

Issues

  • Printing Anson subclasses with non-default field without value initialization will result in errors

If SynOrg.parent is defined as

class SynOrg(Anson)
    parent: str

    def __init__(self):
        super().__init__()

org = Anson.from_file(...)
print (org)

Error
Traceback (most recent call last):
  File "/home/antson/py3/test/testYellowPages.py", line 18, in testAnregistry
    print(diction)
  File "/usr/lib/python3.12/dataclasses.py", line 262, in wrapper
    result = user_function(self)
             ^^^^^^^^^^^^^^^^^^^
  File "<string>", line 3, in __repr__
  File "/usr/lib/python3.12/dataclasses.py", line 262, in wrapper
    result = user_function(self)
             ^^^^^^^^^^^^^^^^^^^
  File "<string>", line 3, in __repr__
  File "/usr/lib/python3.12/dataclasses.py", line 262, in wrapper
    result = user_function(self)
             ^^^^^^^^^^^^^^^^^^^
  File "<string>", line 3, in __repr__
AttributeError: 'SynOrg' object has no attribute 'parent'

References

Troubleshootings

.pypirc

[testpypi]
repository: https://test.pypi.org/legacy/
username = __token__
password = pypi-zzz
python3 -m twine --version
twine version 6.1.0 (keyring: 25.6.0, packaging: 24.2, requests: 2.31.0, requests-toolbelt: 1.0.0,
urllib3: 2.0.7, id: 1.5.0)
python3 -m build
python3 -m twine upload --repository testpypi dist/*
ERROR   InvalidDistribution: Invalid distribution metadata: unrecognized or malformed field
        'license-file'; unrecognized or malformed field 'license-expression'  

Install twine 6.1.0 and packaging 24.

pip install packaging -U

See issue #1216.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anson_py3-0.3.2.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anson_py3-0.3.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file anson_py3-0.3.2.tar.gz.

File metadata

  • Download URL: anson_py3-0.3.2.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for anson_py3-0.3.2.tar.gz
Algorithm Hash digest
SHA256 a5512338895e0ce45fedba67063f4b9ac34df1f88c1c456b656ae4d814cf2729
MD5 396201aefd82fda6f47e33121fa4496d
BLAKE2b-256 d42c2081c27e9deefc9dae2c8579e7d1b38d6ee76efefb7735a7a3dd15bf5606

See more details on using hashes here.

File details

Details for the file anson_py3-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: anson_py3-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for anson_py3-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6e78146b752a6f46dc3c0e68d2aa692f775487f247105fde225da23924f58531
MD5 8c8ec9b3429bc9ccc6ba8cb491f2d482
BLAKE2b-256 5abfd498c64689e73474d2577cfe8e7ea3a234d9add43d44d37e4c41e7a2c6d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page