summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 06:26:56 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 06:26:56 +0000
commit5c1e1e40b2252479e45cdd816a757528b0d4bf5c (patch)
treee796aa4a936f2c3f8576d9e0f76e4c8e577ad202
parentd0990334cddb620fe221109025a9b2a8447ea233 (diff)
automatic import of python-linuxforhealth-x12
-rw-r--r--.gitignore1
-rw-r--r--python-linuxforhealth-x12.spec635
-rw-r--r--sources1
3 files changed, 637 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..74ec734 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/linuxforhealth-x12-0.57.0.tar.gz
diff --git a/python-linuxforhealth-x12.spec b/python-linuxforhealth-x12.spec
new file mode 100644
index 0000000..de6f04f
--- /dev/null
+++ b/python-linuxforhealth-x12.spec
@@ -0,0 +1,635 @@
+%global _empty_manifest_terminate_build 0
+Name: python-linuxforhealth-x12
+Version: 0.57.0
+Release: 1
+Summary: LinuxForHealth x12 streams ASC 5010 X12 health care transactions into Pydantic Models for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK
+License: Apache 2.0
+URL: https://pypi.org/project/linuxforhealth-x12/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/37/76/fde881b8708ed40c17fac512342a323dce4cedf11e2558e7dd1a5d0060b6/linuxforhealth-x12-0.57.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-pydantic
+Requires: python3-dotenv
+Requires: python3-fastapi
+Requires: python3-uvicorn[standard]
+Requires: python3-requests
+Requires: python3-black
+Requires: python3-pre-commit
+Requires: python3-pytest
+
+%description
+# LinuxForHealth x12
+
+![GitHub License](https://img.shields.io/github/license/LinuxForHealth/x12)
+![Supported Versions](https://img.shields.io/badge/python%20version-3.8%2C%203.9-blue)
+<br>
+![Template CI](https://github.com/LinuxForHealth/x12/actions/workflows/continuous-integration.yml/badge.svg)
+<br>
+![GitHub Issues](https://img.shields.io/github/issues/LinuxForHealth/x12)
+![GitHub Forks](https://img.shields.io/github/forks/LinuxForHealth/x12)
+![GitHub Stars](https://img.shields.io/github/stars/LinuxForHealth/x12)
+
+
+LinuxForHealth x12 streams ASC 5010 X12 health care transactions into [Pydantic Models](https://pydantic-docs.helpmanual.io/) for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK.
+
+Supported formats include:
+* 005010X212 Claim Status
+* 005010X221 Claim Payment
+* 005010X222 Professional Claim
+* 05010X223 Institutional Claim
+* 005010X279 Eligibility
+* 005010X220 Enrollment and Maintenance
+
+## Quickstart
+
+### Pre-requisites
+The LinuxForHealth X12 development environment relies on the following software packages:
+
+- [git](https://git-scm.com) for project version control
+- [Python 3.8 or higher](https://www.python.org/downloads/) for runtime/coding support
+
+### Project Setup and Validation
+```shell
+pip install --upgrade pip setuptools
+
+git clone https://github.com/LinuxForHealth/x12
+cd x12
+
+python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools
+pip install -e .[dev, api] # installs dev packages and optional API endpoint
+pytest
+```
+
+### SDK
+
+The X12 SDK provides an `io` package which supports streaming X12 segments or transaction models. Segment
+streaming parses each segment into a list containing the fields. Model streaming validates the X12 payload, and returns
+one or transaction models from the X12 message.
+
+
+To stream segments, create a X12SegmentReader instance:
+```python
+from linuxforhealth.x12.io import X12SegmentReader
+
+with X12SegmentReader("/home/edi/270.x12") as r:
+ # return the segment name and field list
+ for segment_name, segment_fields in r.segments():
+ print(segment_name)
+ print(segment_fields)
+```
+
+To stream models, create a X12ModelReader instance:
+```python
+from linuxforhealth.x12.io import X12ModelReader
+
+with X12ModelReader("/home/edi/270.x12") as r:
+ for model in r.models():
+ # common model attributes include "header" and "footer"
+ print(model.header)
+ print(model.footer)
+
+ # to convert back to X12
+ model.x12()
+```
+
+### CLI
+The X12 CLI parses a X12 input file and returns either a list of X12 segments, or a list of X12 models based on the provided options.
+
+To view help information
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % lfhx12 --help
+usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file
+
+The LinuxForHealth X12 CLI parses and validates X12 messages.
+Messages are returned in JSON format in either a segment or transactional format.
+
+positional arguments:
+ file The path to a ASC X12 file
+
+optional arguments:
+ -h, --help show this help message and exit
+ -s, --segment Returns X12 segments
+ -m, --model Returns X12 models
+ -x, --exclude Exclude fields set to None in model output
+ -p, --pretty Pretty print output
+```
+
+To parse a X12 message into segments with pretty printing enabled
+```shell
+(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270
+[
+ {
+ "ISA00": "ISA",
+ "ISA01": "03",
+ "ISA02": "9876543210",
+<etc, etc>
+```
+
+To parse a X12 message into models with pretty printing enabled
+```shell
+(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270
+[
+ {
+ "header": {
+ "st_segment": {
+ "delimiters": {
+ "element_separator": "*",
+ "repetition_separator": "^",
+ "segment_terminator": "~",
+ "component_separator": ":"
+ },
+ "segment_name": "ST",
+ "transaction_set_identifier_code": "270",
+ "transaction_set_control_number": "0001",
+ "implementation_convention_reference": "005010X279A1"
+ },
+ "bht_segment": {
+ <etc, etc>
+```
+
+In "model" mode, the `-x` option excludes `None` values from output.
+
+### API
+LinuxForHealth X12 includes an experimental "api" setup "extra" which activates a [Fast API](https://fastapi.tiangolo.com/)
+endpoint used to submit X12 payloads.
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % pip install -e ".[api]"
+(venv) user@mbp x12 % lfhx12-api
+```
+Browse to http://localhost:5000/docs to view the Open API UI.
+
+API server configurations are located in the [config module](./src/linuxforhealth/x12/config.py). The `X12ApiConfig` model
+is a [Pydantic Settings Model](https://pydantic-docs.helpmanual.io/usage/settings/) which can be configured using environment
+variables.
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % export X12_UVICORN_PORT=5002
+(venv) user@mbp x12 % lfhx12-api
+```
+
+### Code Formatting
+
+LinuxForHealth X12 adheres to the [Black Code Style and Convention](https://black.readthedocs.io/en/stable/index.html)
+
+The following command executes the black formatter with default options
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % black ./src
+```
+
+Use the `--help` flag to view all available options for the black code formatter
+
+```shell
+(venv) user@mbp x12 % black --help
+```
+
+## Building The Project
+LinuxForHealth X12 is aligned, to a degree, with the PEP-517 standard. `setup.cfg` stores build metadata/configuration.
+`pyproject.toml` contains the build toolchain specification and black formatter configurations.
+
+The commands below creates a source and wheel distribution within a clean build environment.
+
+```shell
+python3 -m venv build-venv && source build-venv/bin/activate && pip install --upgrade pip setuptools build wheel twine
+python3 -m build --no-isolation
+```
+
+## Additional Resources
+- [Design Overview](repo-docs/DESIGN.md)
+- [New Transaction Support](repo-docs/NEW_TRANSACTION.md)
+- [Container Support](repo-docs/CONTAINER_SUPPORT.md)
+
+
+%package -n python3-linuxforhealth-x12
+Summary: LinuxForHealth x12 streams ASC 5010 X12 health care transactions into Pydantic Models for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK
+Provides: python-linuxforhealth-x12
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-linuxforhealth-x12
+# LinuxForHealth x12
+
+![GitHub License](https://img.shields.io/github/license/LinuxForHealth/x12)
+![Supported Versions](https://img.shields.io/badge/python%20version-3.8%2C%203.9-blue)
+<br>
+![Template CI](https://github.com/LinuxForHealth/x12/actions/workflows/continuous-integration.yml/badge.svg)
+<br>
+![GitHub Issues](https://img.shields.io/github/issues/LinuxForHealth/x12)
+![GitHub Forks](https://img.shields.io/github/forks/LinuxForHealth/x12)
+![GitHub Stars](https://img.shields.io/github/stars/LinuxForHealth/x12)
+
+
+LinuxForHealth x12 streams ASC 5010 X12 health care transactions into [Pydantic Models](https://pydantic-docs.helpmanual.io/) for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK.
+
+Supported formats include:
+* 005010X212 Claim Status
+* 005010X221 Claim Payment
+* 005010X222 Professional Claim
+* 05010X223 Institutional Claim
+* 005010X279 Eligibility
+* 005010X220 Enrollment and Maintenance
+
+## Quickstart
+
+### Pre-requisites
+The LinuxForHealth X12 development environment relies on the following software packages:
+
+- [git](https://git-scm.com) for project version control
+- [Python 3.8 or higher](https://www.python.org/downloads/) for runtime/coding support
+
+### Project Setup and Validation
+```shell
+pip install --upgrade pip setuptools
+
+git clone https://github.com/LinuxForHealth/x12
+cd x12
+
+python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools
+pip install -e .[dev, api] # installs dev packages and optional API endpoint
+pytest
+```
+
+### SDK
+
+The X12 SDK provides an `io` package which supports streaming X12 segments or transaction models. Segment
+streaming parses each segment into a list containing the fields. Model streaming validates the X12 payload, and returns
+one or transaction models from the X12 message.
+
+
+To stream segments, create a X12SegmentReader instance:
+```python
+from linuxforhealth.x12.io import X12SegmentReader
+
+with X12SegmentReader("/home/edi/270.x12") as r:
+ # return the segment name and field list
+ for segment_name, segment_fields in r.segments():
+ print(segment_name)
+ print(segment_fields)
+```
+
+To stream models, create a X12ModelReader instance:
+```python
+from linuxforhealth.x12.io import X12ModelReader
+
+with X12ModelReader("/home/edi/270.x12") as r:
+ for model in r.models():
+ # common model attributes include "header" and "footer"
+ print(model.header)
+ print(model.footer)
+
+ # to convert back to X12
+ model.x12()
+```
+
+### CLI
+The X12 CLI parses a X12 input file and returns either a list of X12 segments, or a list of X12 models based on the provided options.
+
+To view help information
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % lfhx12 --help
+usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file
+
+The LinuxForHealth X12 CLI parses and validates X12 messages.
+Messages are returned in JSON format in either a segment or transactional format.
+
+positional arguments:
+ file The path to a ASC X12 file
+
+optional arguments:
+ -h, --help show this help message and exit
+ -s, --segment Returns X12 segments
+ -m, --model Returns X12 models
+ -x, --exclude Exclude fields set to None in model output
+ -p, --pretty Pretty print output
+```
+
+To parse a X12 message into segments with pretty printing enabled
+```shell
+(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270
+[
+ {
+ "ISA00": "ISA",
+ "ISA01": "03",
+ "ISA02": "9876543210",
+<etc, etc>
+```
+
+To parse a X12 message into models with pretty printing enabled
+```shell
+(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270
+[
+ {
+ "header": {
+ "st_segment": {
+ "delimiters": {
+ "element_separator": "*",
+ "repetition_separator": "^",
+ "segment_terminator": "~",
+ "component_separator": ":"
+ },
+ "segment_name": "ST",
+ "transaction_set_identifier_code": "270",
+ "transaction_set_control_number": "0001",
+ "implementation_convention_reference": "005010X279A1"
+ },
+ "bht_segment": {
+ <etc, etc>
+```
+
+In "model" mode, the `-x` option excludes `None` values from output.
+
+### API
+LinuxForHealth X12 includes an experimental "api" setup "extra" which activates a [Fast API](https://fastapi.tiangolo.com/)
+endpoint used to submit X12 payloads.
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % pip install -e ".[api]"
+(venv) user@mbp x12 % lfhx12-api
+```
+Browse to http://localhost:5000/docs to view the Open API UI.
+
+API server configurations are located in the [config module](./src/linuxforhealth/x12/config.py). The `X12ApiConfig` model
+is a [Pydantic Settings Model](https://pydantic-docs.helpmanual.io/usage/settings/) which can be configured using environment
+variables.
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % export X12_UVICORN_PORT=5002
+(venv) user@mbp x12 % lfhx12-api
+```
+
+### Code Formatting
+
+LinuxForHealth X12 adheres to the [Black Code Style and Convention](https://black.readthedocs.io/en/stable/index.html)
+
+The following command executes the black formatter with default options
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % black ./src
+```
+
+Use the `--help` flag to view all available options for the black code formatter
+
+```shell
+(venv) user@mbp x12 % black --help
+```
+
+## Building The Project
+LinuxForHealth X12 is aligned, to a degree, with the PEP-517 standard. `setup.cfg` stores build metadata/configuration.
+`pyproject.toml` contains the build toolchain specification and black formatter configurations.
+
+The commands below creates a source and wheel distribution within a clean build environment.
+
+```shell
+python3 -m venv build-venv && source build-venv/bin/activate && pip install --upgrade pip setuptools build wheel twine
+python3 -m build --no-isolation
+```
+
+## Additional Resources
+- [Design Overview](repo-docs/DESIGN.md)
+- [New Transaction Support](repo-docs/NEW_TRANSACTION.md)
+- [Container Support](repo-docs/CONTAINER_SUPPORT.md)
+
+
+%package help
+Summary: Development documents and examples for linuxforhealth-x12
+Provides: python3-linuxforhealth-x12-doc
+%description help
+# LinuxForHealth x12
+
+![GitHub License](https://img.shields.io/github/license/LinuxForHealth/x12)
+![Supported Versions](https://img.shields.io/badge/python%20version-3.8%2C%203.9-blue)
+<br>
+![Template CI](https://github.com/LinuxForHealth/x12/actions/workflows/continuous-integration.yml/badge.svg)
+<br>
+![GitHub Issues](https://img.shields.io/github/issues/LinuxForHealth/x12)
+![GitHub Forks](https://img.shields.io/github/forks/LinuxForHealth/x12)
+![GitHub Stars](https://img.shields.io/github/stars/LinuxForHealth/x12)
+
+
+LinuxForHealth x12 streams ASC 5010 X12 health care transactions into [Pydantic Models](https://pydantic-docs.helpmanual.io/) for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK.
+
+Supported formats include:
+* 005010X212 Claim Status
+* 005010X221 Claim Payment
+* 005010X222 Professional Claim
+* 05010X223 Institutional Claim
+* 005010X279 Eligibility
+* 005010X220 Enrollment and Maintenance
+
+## Quickstart
+
+### Pre-requisites
+The LinuxForHealth X12 development environment relies on the following software packages:
+
+- [git](https://git-scm.com) for project version control
+- [Python 3.8 or higher](https://www.python.org/downloads/) for runtime/coding support
+
+### Project Setup and Validation
+```shell
+pip install --upgrade pip setuptools
+
+git clone https://github.com/LinuxForHealth/x12
+cd x12
+
+python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools
+pip install -e .[dev, api] # installs dev packages and optional API endpoint
+pytest
+```
+
+### SDK
+
+The X12 SDK provides an `io` package which supports streaming X12 segments or transaction models. Segment
+streaming parses each segment into a list containing the fields. Model streaming validates the X12 payload, and returns
+one or transaction models from the X12 message.
+
+
+To stream segments, create a X12SegmentReader instance:
+```python
+from linuxforhealth.x12.io import X12SegmentReader
+
+with X12SegmentReader("/home/edi/270.x12") as r:
+ # return the segment name and field list
+ for segment_name, segment_fields in r.segments():
+ print(segment_name)
+ print(segment_fields)
+```
+
+To stream models, create a X12ModelReader instance:
+```python
+from linuxforhealth.x12.io import X12ModelReader
+
+with X12ModelReader("/home/edi/270.x12") as r:
+ for model in r.models():
+ # common model attributes include "header" and "footer"
+ print(model.header)
+ print(model.footer)
+
+ # to convert back to X12
+ model.x12()
+```
+
+### CLI
+The X12 CLI parses a X12 input file and returns either a list of X12 segments, or a list of X12 models based on the provided options.
+
+To view help information
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % lfhx12 --help
+usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file
+
+The LinuxForHealth X12 CLI parses and validates X12 messages.
+Messages are returned in JSON format in either a segment or transactional format.
+
+positional arguments:
+ file The path to a ASC X12 file
+
+optional arguments:
+ -h, --help show this help message and exit
+ -s, --segment Returns X12 segments
+ -m, --model Returns X12 models
+ -x, --exclude Exclude fields set to None in model output
+ -p, --pretty Pretty print output
+```
+
+To parse a X12 message into segments with pretty printing enabled
+```shell
+(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270
+[
+ {
+ "ISA00": "ISA",
+ "ISA01": "03",
+ "ISA02": "9876543210",
+<etc, etc>
+```
+
+To parse a X12 message into models with pretty printing enabled
+```shell
+(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270
+[
+ {
+ "header": {
+ "st_segment": {
+ "delimiters": {
+ "element_separator": "*",
+ "repetition_separator": "^",
+ "segment_terminator": "~",
+ "component_separator": ":"
+ },
+ "segment_name": "ST",
+ "transaction_set_identifier_code": "270",
+ "transaction_set_control_number": "0001",
+ "implementation_convention_reference": "005010X279A1"
+ },
+ "bht_segment": {
+ <etc, etc>
+```
+
+In "model" mode, the `-x` option excludes `None` values from output.
+
+### API
+LinuxForHealth X12 includes an experimental "api" setup "extra" which activates a [Fast API](https://fastapi.tiangolo.com/)
+endpoint used to submit X12 payloads.
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % pip install -e ".[api]"
+(venv) user@mbp x12 % lfhx12-api
+```
+Browse to http://localhost:5000/docs to view the Open API UI.
+
+API server configurations are located in the [config module](./src/linuxforhealth/x12/config.py). The `X12ApiConfig` model
+is a [Pydantic Settings Model](https://pydantic-docs.helpmanual.io/usage/settings/) which can be configured using environment
+variables.
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % export X12_UVICORN_PORT=5002
+(venv) user@mbp x12 % lfhx12-api
+```
+
+### Code Formatting
+
+LinuxForHealth X12 adheres to the [Black Code Style and Convention](https://black.readthedocs.io/en/stable/index.html)
+
+The following command executes the black formatter with default options
+
+```shell
+user@mbp x12 % source venv/bin/activate
+(venv) user@mbp x12 % black ./src
+```
+
+Use the `--help` flag to view all available options for the black code formatter
+
+```shell
+(venv) user@mbp x12 % black --help
+```
+
+## Building The Project
+LinuxForHealth X12 is aligned, to a degree, with the PEP-517 standard. `setup.cfg` stores build metadata/configuration.
+`pyproject.toml` contains the build toolchain specification and black formatter configurations.
+
+The commands below creates a source and wheel distribution within a clean build environment.
+
+```shell
+python3 -m venv build-venv && source build-venv/bin/activate && pip install --upgrade pip setuptools build wheel twine
+python3 -m build --no-isolation
+```
+
+## Additional Resources
+- [Design Overview](repo-docs/DESIGN.md)
+- [New Transaction Support](repo-docs/NEW_TRANSACTION.md)
+- [Container Support](repo-docs/CONTAINER_SUPPORT.md)
+
+
+%prep
+%autosetup -n linuxforhealth-x12-0.57.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-linuxforhealth-x12 -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.57.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..b0a3c7e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+827af2c02fdf01b20323f85c0ae1abf0 linuxforhealth-x12-0.57.0.tar.gz