Skip to main content

a1pamfax

Python versions

Airport1's PamFax - short name a1pamfax - is a Python (3.6+) package that implements the PamFax API.

This is an adaption of Dynaptico PamFax (Python2) - once written for Python 2 - now adapted to work for Python 3.6 or later. The old code (and style) has been kept whenever possible, on purpose. The behavior should be nearly the same.

For more information about the PamFax API, visit: PamFax for Developers.

As this package is still in development, please report any bugs or issues by raising an issue in this Github repository.

This module is written for Python 3.6+ and has only been tested against Python 3.9. There is a big chance it works for previous versions, however, too.

Installation

You can install a1pamfax either via the Python Package Index (PyPI) or from source.

To install the latest version via pip:

pip install a1pamfax --upgrade

This is my first public package following the instructions on Python-Packaging. So far I included the test, test data (the former pdf file by dynaptico), a config example and a sample.

Requirements

It is required to install at least (e.g. via pip install requests):

  • requests

Tests

It is strongly recommended to use the sandbox environment ('sandbox-apifrontend') for testing. First copy the file config.example.py and rename it to config.py and fill in your credentials. Then run either the sample by:

python sample.py

or the test suite by:

cd test
python test.py

You may adapt the main method of test.py to en-/disable the tests you (dis)like.

Depending on the tests you run it might be required that you already received or sent something, e.g. in the sandbox environment. The online storage tests will partially be skipped if you did not authenticate for e.g. Dropbox before, this is intentionally.

Usage

There is also a sample.py provided, but in short: after logging in follow the PamFax Processors Documentation. E.g. Common::GetCurrentSettings is available as pamfax.get_current_settings() etc. Full example:

from config import HOST, USERNAME, PASSWORD, APIKEY, APISECRET
from pamfax import PamFax

pamfax = PamFax(USERNAME, PASSWORD, host=HOST, apikey=APIKEY, apisecret=APISECRET)
response = pamfax.get_current_settings()
print(response)

Documentation

There is no documentation for this package in Python 3 yet. But: the documentation for the older Python 2 implementation by dynaptico might be still available here: Dynaptico PamFax documentation (Python2)

and nearly all methods and signatures have been kept ON PURPOSE, just adapted for Python 3. Only few private methods were changed.

See also section Particularities.

Integrity

All methods in the PamFax API should be implemented by this package, except the ones introduced after Dynaptico released his Python 2 version. Missing methods will be added, step by step.

Since v0.0.6 Dropbox methods are re-enabled and tested, plus missing methods for Common have been added.

Particularities

As said, the code is heavily based on an old package for Python 2. It was just adapted to run "the same" on Python 3. Intentionally nearly all methods and signatures have been kept, except the implementation might be different sometimes. So the code has only been touched where it was required, e.g. it's using now requests's session with a timeout of 30 seconds. I tried to stick to the coding style of dynaptico. However, few private methods had to be changed in their signature:

  • _get_and_check_response
  • _get
  • _post

Thanks

To Dynaptico, on which this rewrite for Python 3 is heavily based on, see: Dynaptico PamFax (Python2).

Packaging for Python - a small tutorial

For developing ensure the package is uninstalled e.g. in the venv and in test.py set develop_mode = True:

pip uninstall a1pamfax

Pre-testing: in test.py set develop_mode = False, then for e.g. in the venv do this:

python setup.py install
python test.py

In general check out Python-Packaging. After setting up the Test-PyPI and PyPI accounts continue here.

cd \workspace\python\a1pamfax
rd /s /q dist build a1pamfax.egg-info
python -m pip install --user --upgrade setuptools wheel
python setup.py sdist bdist_wheel
python -m pip install --user --upgrade twine

Uploading to testpypi:

python -m twine upload --repository testpypi dist/*

And after testing, for production use (e.g. in the venv):

python -m twine upload dist/*
pip uninstall a1pamfax
pip install a1pamfax --upgrade

Metadata

Release files for a1pamfax 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for a1pamfax 0.0.9
File Size Uploaded Provenance
a1pamfax-0.0.9.tar.gz 72.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for a1pamfax 0.0.9
File Interpreter ABI Platform
a1pamfax-0.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 94.1 kB

Release files / a1pamfax-0.0.9.tar.gz

Download URL a1pamfax-0.0.9.tar.gz
Size 72.5 kB
Tags Source
SHA-256 checksum
How to use checksums
645f17a8cd03baa50bb5511107745975b5e5c551a3d37eb824a2f56e9133f33c
BLAKE2b-256 checksum
How to use checksums
bbb08dbc4d6c558d1e823ab992d6707aa08f1722507234d01db6ebdfa84d8878
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/51.1.0.post20201221 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

Release files / a1pamfax-0.0.9-py3-none-any.whl

Download URL a1pamfax-0.0.9-py3-none-any.whl
Size 21.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6423c9c2241ec5c69304bcc5af92822ff6ede02534bb8a09a8f8b8fb3f44ba13
BLAKE2b-256 checksum
How to use checksums
0ecd61bfabaddc38fdcafb0f0bffd87aaef7a4dae5c642c9ed285f5aeaf7431d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/51.1.0.post20201221 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

Security for a1pamfax 0.0.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page