diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index af6468a..46750fa 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -32,5 +32,5 @@ jobs: - name: Run X12 CLI run: | for f in demo-file/demo.*; do - cli -m -p $f 1> /dev/null + lfhx12 -m -p $f 1> /dev/null done diff --git a/README.md b/README.md index c8c8169..3e8874e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ 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. -Implemented formats include: +Supported formats include: * 005010X212 Claim Status * 005010X221 Claim Payment * 005010X222 Professional Claim @@ -56,7 +56,7 @@ one or transaction models from the X12 message. To stream segments, create a X12SegmentReader instance: ```python -from x12.io import X12SegmentReader +from linuxforhealth.x12.io import X12SegmentReader with X12SegmentReader("/home/edi/270.x12") as r: # return the segment name and field list @@ -67,7 +67,7 @@ with X12SegmentReader("/home/edi/270.x12") as r: To stream models, create a X12ModelReader instance: ```python -from x12.io import X12ModelReader +from linuxforhealth.x12.io import X12ModelReader with X12ModelReader("/home/edi/270.x12") as r: for model in r.models(): @@ -85,7 +85,7 @@ The X12 CLI parses a X12 input file and returns either a list of X12 segments, o To view help information ```shell user@mbp x12 % source venv/bin/activate -(venv) user@mbp x12 % cli --help +(venv) user@mbp x12 % lfhx12 --help usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file The LinuxForHealth X12 CLI parses and validates X12 messages. @@ -104,7 +104,7 @@ optional arguments: To parse a X12 message into segments with pretty printing enabled ```shell -(venv) user@mbp x12 % cli -s -p demo-file/demo.270 +(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270 [ { "ISA00": "ISA", @@ -115,7 +115,7 @@ To parse a X12 message into segments with pretty printing enabled To parse a X12 message into models with pretty printing enabled ```shell -(venv) user@mbp x12 % cli -m -p demo-file/demo.270 +(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270 [ { "header": { diff --git a/setup.cfg b/setup.cfg index 17c9796..d8bffdd 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = linuxforhealth-x12 -version = attr: x12.__version__ +version = attr: linuxforhealth.x12.__version__ description = 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 long_description: file: README.md long_description_content_type = text/markdown @@ -18,7 +18,7 @@ classifiers = include_package_data = True install_requires = pydantic >= 1.8 - python-dotenv + python-dotenv >= 0.19.0 packages=find: package_dir= =src @@ -30,9 +30,9 @@ where=src [options.entry_points] console_scripts = - cli = x12.cli:main + lfhx12 = linuxforhealth.x12.cli:main black = black:patched_main [options.extras_require] api = fastapi; uvicorn[standard] -dev = black; pre-commit; pytest \ No newline at end of file +dev = black>=21.8b0; pre-commit>=2.14.1;pytest>=6.2.5 \ No newline at end of file diff --git a/src/x12/transactions/x12_271_005010X279A1/__init__.py b/src/linuxforhealth/__init__.py similarity index 100% rename from src/x12/transactions/x12_271_005010X279A1/__init__.py rename to src/linuxforhealth/__init__.py diff --git a/src/x12/__init__.py b/src/linuxforhealth/x12/__init__.py similarity index 82% rename from src/x12/__init__.py rename to src/linuxforhealth/x12/__init__.py index 76f9a63..41337c5 100644 --- a/src/x12/__init__.py +++ b/src/linuxforhealth/x12/__init__.py @@ -7,4 +7,4 @@ load_dotenv() -__version__ = "0.53.00" +__version__ = "0.54.00" diff --git a/src/x12/cli.py b/src/linuxforhealth/x12/cli.py similarity index 95% rename from src/x12/cli.py rename to src/linuxforhealth/x12/cli.py index 2d95b50..9e0bea9 100644 --- a/src/x12/cli.py +++ b/src/linuxforhealth/x12/cli.py @@ -10,9 +10,9 @@ import argparse import json -from x12.encoding import X12JsonEncoder -from x12.io import X12SegmentReader, X12ModelReader -from typing import List, Dict +from .encoding import X12JsonEncoder +from .io import X12SegmentReader, X12ModelReader +from typing import List CLI_DESCRIPTION = """ diff --git a/src/x12/config.py b/src/linuxforhealth/x12/config.py similarity index 100% rename from src/x12/config.py rename to src/linuxforhealth/x12/config.py diff --git a/src/x12/encoding.py b/src/linuxforhealth/x12/encoding.py similarity index 100% rename from src/x12/encoding.py rename to src/linuxforhealth/x12/encoding.py diff --git a/src/x12/io.py b/src/linuxforhealth/x12/io.py similarity index 96% rename from src/x12/io.py rename to src/linuxforhealth/x12/io.py index c1596d3..b5db9a4 100644 --- a/src/x12/io.py +++ b/src/linuxforhealth/x12/io.py @@ -7,11 +7,11 @@ from io import StringIO, TextIOBase from typing import Dict, Iterator, List, Optional, Tuple -from x12.config import IsaDelimiters, TransactionSetVersionIds, get_config -from x12.models import X12Delimiters, X12SegmentGroup, X12SegmentName -from x12.parsing import X12Parser, create_parser -from x12.segments import SEGMENT_LOOKUP -from x12.support import is_x12_data, is_x12_file +from .config import IsaDelimiters, TransactionSetVersionIds, get_config +from .models import X12Delimiters, X12SegmentGroup, X12SegmentName +from .parsing import X12Parser, create_parser +from .segments import SEGMENT_LOOKUP +from .support import is_x12_data, is_x12_file logger = logging.getLogger(__name__) diff --git a/src/x12/models.py b/src/linuxforhealth/x12/models.py similarity index 100% rename from src/x12/models.py rename to src/linuxforhealth/x12/models.py diff --git a/src/x12/parsing.py b/src/linuxforhealth/x12/parsing.py similarity index 97% rename from src/x12/parsing.py rename to src/linuxforhealth/x12/parsing.py index 188ce76..bffae8c 100644 --- a/src/x12/parsing.py +++ b/src/linuxforhealth/x12/parsing.py @@ -12,8 +12,8 @@ from importlib import import_module from typing import Callable, Dict, List, Optional, Set -from x12.models import X12SegmentGroup, X12Segment, X12Delimiters -from x12.segments import SEGMENT_LOOKUP +from .models import X12SegmentGroup, X12Segment, X12Delimiters +from .segments import SEGMENT_LOOKUP logger = logging.getLogger(__name__) @@ -341,7 +341,7 @@ def _load_loop_parsers(transaction_code: str, implementation_version) -> Dict: loop_parsers = defaultdict(list) parsing_module = import_module( - f"x12.transactions.x12_{transaction_code}_{implementation_version}.parsing" + f"linuxforhealth.x12.transactions.x12_{transaction_code}_{implementation_version}.parsing" ) funcs = [ @@ -362,7 +362,7 @@ def _load_transaction_model( ) -> X12SegmentGroup: """Returns the transaction model for the x12 transaction""" transaction_module = import_module( - f"x12.transactions.x12_{transaction_code}_{implementation_version}.transaction_set" + f"linuxforhealth.x12.transactions.x12_{transaction_code}_{implementation_version}.transaction_set" ) # return transaction set model diff --git a/src/x12/segments.py b/src/linuxforhealth/x12/segments.py similarity index 99% rename from src/x12/segments.py rename to src/linuxforhealth/x12/segments.py index 41bc144..9bf3e18 100644 --- a/src/x12/segments.py +++ b/src/linuxforhealth/x12/segments.py @@ -13,13 +13,13 @@ from pydantic import Field, PositiveInt, condecimal, validator, root_validator, conint -from x12.models import X12Segment, X12SegmentName -from x12.support import ( +from .models import X12Segment, X12SegmentName +from .support import ( parse_x12_date, parse_interchange_date, field_validator, ) -from x12.validators import validate_date_field +from .validators import validate_date_field class AaaSegment(X12Segment): diff --git a/src/x12/support.py b/src/linuxforhealth/x12/support.py similarity index 98% rename from src/x12/support.py rename to src/linuxforhealth/x12/support.py index 1b5d452..e7233cd 100644 --- a/src/x12/support.py +++ b/src/linuxforhealth/x12/support.py @@ -10,7 +10,7 @@ from pydantic import validator, BaseModel -from x12.config import IsaDelimiters +from .config import IsaDelimiters def is_x12_data(input_data: str) -> bool: diff --git a/src/x12/transactions/__init__.py b/src/linuxforhealth/x12/transactions/__init__.py similarity index 100% rename from src/x12/transactions/__init__.py rename to src/linuxforhealth/x12/transactions/__init__.py diff --git a/src/x12/transactions/validators.py b/src/linuxforhealth/x12/transactions/validators.py similarity index 100% rename from src/x12/transactions/validators.py rename to src/linuxforhealth/x12/transactions/validators.py diff --git a/src/x12/transactions/x12_270_005010X279A1/__init__.py b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/__init__.py similarity index 100% rename from src/x12/transactions/x12_270_005010X279A1/__init__.py rename to src/linuxforhealth/x12/transactions/x12_270_005010X279A1/__init__.py diff --git a/src/x12/transactions/x12_270_005010X279A1/loops.py b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/loops.py similarity index 96% rename from src/x12/transactions/x12_270_005010X279A1/loops.py rename to src/linuxforhealth/x12/transactions/x12_270_005010X279A1/loops.py index c1434e2..e75c9a9 100644 --- a/src/x12/transactions/x12_270_005010X279A1/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/loops.py @@ -21,8 +21,8 @@ transactional modeling and processing. """ -from x12.models import X12SegmentGroup -from x12.segments import ( +from linuxforhealth.x12.models import X12SegmentGroup +from linuxforhealth.x12.segments import ( SeSegment, N3Segment, N4Segment, @@ -56,7 +56,7 @@ ) from typing import List, Optional from pydantic import Field, root_validator -from x12.validators import validate_duplicate_ref_codes +from linuxforhealth.x12.validators import validate_duplicate_ref_codes class Header(X12SegmentGroup): diff --git a/src/x12/transactions/x12_270_005010X279A1/parsing.py b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/parsing.py similarity index 99% rename from src/x12/transactions/x12_270_005010X279A1/parsing.py rename to src/linuxforhealth/x12/transactions/x12_270_005010X279A1/parsing.py index 4625660..90824d2 100644 --- a/src/x12/transactions/x12_270_005010X279A1/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/parsing.py @@ -10,7 +10,7 @@ """ from enum import Enum -from x12.parsing import match, X12ParserContext +from linuxforhealth.x12.parsing import match, X12ParserContext from typing import Optional, Dict diff --git a/src/x12/transactions/x12_270_005010X279A1/segments.py b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/segments.py similarity index 99% rename from src/x12/transactions/x12_270_005010X279A1/segments.py rename to src/linuxforhealth/x12/transactions/x12_270_005010X279A1/segments.py index e9b70a5..36752ab 100644 --- a/src/x12/transactions/x12_270_005010X279A1/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/segments.py @@ -7,8 +7,8 @@ from typing import Literal, Optional, List from pydantic import Field, validator -from x12.transactions.validators import validate_hl_parent_id -from x12.segments import ( +from linuxforhealth.x12.transactions.validators import validate_hl_parent_id +from linuxforhealth.x12.segments import ( BhtSegment, HlSegment, Nm1Segment, diff --git a/src/x12/transactions/x12_270_005010X279A1/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/transaction_set.py similarity index 97% rename from src/x12/transactions/x12_270_005010X279A1/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_270_005010X279A1/transaction_set.py index f49d4b6..f8c02ee 100644 --- a/src/x12/transactions/x12_270_005010X279A1/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_270_005010X279A1/transaction_set.py @@ -4,13 +4,13 @@ Defines the Eligibility 270 005010X279A1 transaction set model. """ -from typing import List, Dict, Union, Tuple +from typing import List, Dict, Tuple -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .loops import Footer, Header, Loop2000A from pydantic import root_validator -from x12.validators import validate_segment_count +from linuxforhealth.x12.validators import validate_segment_count class EligibilityInquiry(X12SegmentGroup): diff --git a/src/x12/transactions/x12_276_005010X212/__init__.py b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/__init__.py similarity index 100% rename from src/x12/transactions/x12_276_005010X212/__init__.py rename to src/linuxforhealth/x12/transactions/x12_271_005010X279A1/__init__.py diff --git a/src/x12/transactions/x12_271_005010X279A1/loops.py b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/loops.py similarity index 98% rename from src/x12/transactions/x12_271_005010X279A1/loops.py rename to src/linuxforhealth/x12/transactions/x12_271_005010X279A1/loops.py index 40fdf76..c6c4555 100644 --- a/src/x12/transactions/x12_271_005010X279A1/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/loops.py @@ -21,8 +21,8 @@ transactional modeling and processing. """ -from x12.models import X12SegmentGroup -from x12.segments import ( +from linuxforhealth.x12.models import X12SegmentGroup +from linuxforhealth.x12.segments import ( SeSegment, N3Segment, N4Segment, @@ -66,7 +66,7 @@ ) from typing import List, Optional from pydantic import Field, root_validator -from x12.validators import validate_duplicate_ref_codes +from linuxforhealth.x12.validators import validate_duplicate_ref_codes class Header(X12SegmentGroup): diff --git a/src/x12/transactions/x12_271_005010X279A1/parsing.py b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/parsing.py similarity index 99% rename from src/x12/transactions/x12_271_005010X279A1/parsing.py rename to src/linuxforhealth/x12/transactions/x12_271_005010X279A1/parsing.py index 88bcc1b..769b016 100644 --- a/src/x12/transactions/x12_271_005010X279A1/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/parsing.py @@ -10,7 +10,7 @@ """ from enum import Enum -from x12.parsing import match, X12ParserContext +from linuxforhealth.x12.parsing import match, X12ParserContext from typing import Dict diff --git a/src/x12/transactions/x12_271_005010X279A1/segments.py b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/segments.py similarity index 99% rename from src/x12/transactions/x12_271_005010X279A1/segments.py rename to src/linuxforhealth/x12/transactions/x12_271_005010X279A1/segments.py index 8fd6821..bf0a25c 100644 --- a/src/x12/transactions/x12_271_005010X279A1/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/segments.py @@ -6,9 +6,9 @@ from enum import Enum from typing import Literal, Optional, List -from pydantic import Field, validator -from x12.transactions.validators import validate_hl_parent_id -from x12.segments import ( +from pydantic import Field +from linuxforhealth.x12.transactions.validators import validate_hl_parent_id +from linuxforhealth.x12.segments import ( AaaSegment, BhtSegment, HlSegment, diff --git a/src/x12/transactions/x12_271_005010X279A1/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/transaction_set.py similarity index 97% rename from src/x12/transactions/x12_271_005010X279A1/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_271_005010X279A1/transaction_set.py index 3c12b39..31c7d79 100644 --- a/src/x12/transactions/x12_271_005010X279A1/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_271_005010X279A1/transaction_set.py @@ -4,13 +4,13 @@ Defines the Eligibility 271 005010X279A1 transaction set model. """ -from typing import List, Dict, Union, Tuple +from typing import List, Dict, Tuple -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .loops import Footer, Header, Loop2000A from pydantic import root_validator -from x12.validators import validate_segment_count +from linuxforhealth.x12.validators import validate_segment_count class EligibilityBenefit(X12SegmentGroup): diff --git a/src/x12/transactions/x12_277_005010X212/__init__.py b/src/linuxforhealth/x12/transactions/x12_276_005010X212/__init__.py similarity index 100% rename from src/x12/transactions/x12_277_005010X212/__init__.py rename to src/linuxforhealth/x12/transactions/x12_276_005010X212/__init__.py diff --git a/src/x12/transactions/x12_276_005010X212/loops.py b/src/linuxforhealth/x12/transactions/x12_276_005010X212/loops.py similarity index 97% rename from src/x12/transactions/x12_276_005010X212/loops.py rename to src/linuxforhealth/x12/transactions/x12_276_005010X212/loops.py index b885921..dcbbed2 100644 --- a/src/x12/transactions/x12_276_005010X212/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_276_005010X212/loops.py @@ -24,7 +24,7 @@ The Subscriber and Dependent Claim Status and Service Line Loops share segment classes as the data structures are identical. """ -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .segments import ( HeaderStSegment, HeaderBhtSegment, @@ -47,7 +47,7 @@ Loop2000EHlSegment, Loop2100ENm1Segment, ) -from x12.segments import SeSegment +from linuxforhealth.x12.segments import SeSegment from typing import List, Optional from pydantic import Field diff --git a/src/x12/transactions/x12_276_005010X212/parsing.py b/src/linuxforhealth/x12/transactions/x12_276_005010X212/parsing.py similarity index 99% rename from src/x12/transactions/x12_276_005010X212/parsing.py rename to src/linuxforhealth/x12/transactions/x12_276_005010X212/parsing.py index 7922f5b..99c0914 100644 --- a/src/x12/transactions/x12_276_005010X212/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_276_005010X212/parsing.py @@ -9,7 +9,7 @@ Loop parsing functions are implemented as set_[description]_loop(context: X12ParserContext, segment_data: Dict). """ from enum import Enum -from x12.parsing import X12ParserContext, match +from linuxforhealth.x12.parsing import X12ParserContext, match from typing import Dict, Optional diff --git a/src/x12/transactions/x12_276_005010X212/segments.py b/src/linuxforhealth/x12/transactions/x12_276_005010X212/segments.py similarity index 99% rename from src/x12/transactions/x12_276_005010X212/segments.py rename to src/linuxforhealth/x12/transactions/x12_276_005010X212/segments.py index bbf2c52..d1b50ca 100644 --- a/src/x12/transactions/x12_276_005010X212/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_276_005010X212/segments.py @@ -3,7 +3,7 @@ Specialized segment models for the Health Care Claim Status Request 276 005010X212 transaction. """ -from x12.segments import ( +from linuxforhealth.x12.segments import ( StSegment, BhtSegment, HlSegment, diff --git a/src/x12/transactions/x12_276_005010X212/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_276_005010X212/transaction_set.py similarity index 81% rename from src/x12/transactions/x12_276_005010X212/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_276_005010X212/transaction_set.py index 506ad91..e8376c4 100644 --- a/src/x12/transactions/x12_276_005010X212/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_276_005010X212/transaction_set.py @@ -3,11 +3,11 @@ Defines the Health Care Claims Status 276 005010X212 transaction set model. """ -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .loops import Header, Footer, Loop2000A from typing import List from pydantic import Field, root_validator -from x12.validators import validate_segment_count +from linuxforhealth.x12.validators import validate_segment_count class HealthCareClaimsStatusRequest(X12SegmentGroup): diff --git a/src/x12/transactions/x12_835_005010X221A1/__init__.py b/src/linuxforhealth/x12/transactions/x12_277_005010X212/__init__.py similarity index 100% rename from src/x12/transactions/x12_835_005010X221A1/__init__.py rename to src/linuxforhealth/x12/transactions/x12_277_005010X212/__init__.py diff --git a/src/x12/transactions/x12_277_005010X212/loops.py b/src/linuxforhealth/x12/transactions/x12_277_005010X212/loops.py similarity index 98% rename from src/x12/transactions/x12_277_005010X212/loops.py rename to src/linuxforhealth/x12/transactions/x12_277_005010X212/loops.py index ab150fa..b9e14fc 100644 --- a/src/x12/transactions/x12_277_005010X212/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_277_005010X212/loops.py @@ -26,7 +26,7 @@ The Subscriber and Dependent Claim Status and Service Line Loops share segment classes as the data structures are identical. """ -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .segments import ( HeaderStSegment, HeaderBhtSegment, @@ -50,7 +50,7 @@ Loop2000EHlSegment, Loop2100ENm1Segment, ) -from x12.segments import SeSegment, StcSegment +from linuxforhealth.x12.segments import SeSegment, StcSegment from typing import List, Optional from pydantic import Field diff --git a/src/x12/transactions/x12_277_005010X212/parsing.py b/src/linuxforhealth/x12/transactions/x12_277_005010X212/parsing.py similarity index 99% rename from src/x12/transactions/x12_277_005010X212/parsing.py rename to src/linuxforhealth/x12/transactions/x12_277_005010X212/parsing.py index 06ee60a..dee9173 100644 --- a/src/x12/transactions/x12_277_005010X212/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_277_005010X212/parsing.py @@ -9,7 +9,7 @@ Loop parsing functions are implemented as set_[description]_loop(context: X12ParserContext, segment_data: Dict). """ from enum import Enum -from x12.parsing import X12ParserContext, match +from linuxforhealth.x12.parsing import X12ParserContext, match from typing import Dict, Optional diff --git a/src/x12/transactions/x12_277_005010X212/segments.py b/src/linuxforhealth/x12/transactions/x12_277_005010X212/segments.py similarity index 99% rename from src/x12/transactions/x12_277_005010X212/segments.py rename to src/linuxforhealth/x12/transactions/x12_277_005010X212/segments.py index 21758f7..bed6cb7 100644 --- a/src/x12/transactions/x12_277_005010X212/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_277_005010X212/segments.py @@ -3,7 +3,7 @@ Specialized segment models for the Health Care Claim Status Response 277 005010X212 transaction. """ -from x12.segments import ( +from linuxforhealth.x12.segments import ( StSegment, BhtSegment, HlSegment, diff --git a/src/x12/transactions/x12_277_005010X212/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_277_005010X212/transaction_set.py similarity index 81% rename from src/x12/transactions/x12_277_005010X212/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_277_005010X212/transaction_set.py index cbfd0e8..ba71d16 100644 --- a/src/x12/transactions/x12_277_005010X212/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_277_005010X212/transaction_set.py @@ -3,11 +3,11 @@ Defines the Health Care Claims Status 277 005010X212 transaction set model. """ -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .loops import Header, Footer, Loop2000A from typing import List from pydantic import Field, root_validator -from x12.validators import validate_segment_count +from linuxforhealth.x12.validators import validate_segment_count class HealthCareClaimsStatusResponse(X12SegmentGroup): diff --git a/src/x12/transactions/x12_837_005010X222A2/__init__.py b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/__init__.py similarity index 100% rename from src/x12/transactions/x12_837_005010X222A2/__init__.py rename to src/linuxforhealth/x12/transactions/x12_835_005010X221A1/__init__.py diff --git a/src/x12/transactions/x12_835_005010X221A1/loops.py b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/loops.py similarity index 98% rename from src/x12/transactions/x12_835_005010X221A1/loops.py rename to src/linuxforhealth/x12/transactions/x12_835_005010X221A1/loops.py index 1fa0b93..65da26b 100644 --- a/src/x12/transactions/x12_835_005010X221A1/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/loops.py @@ -4,8 +4,8 @@ Models the loops, or logical segment groupings, for the Health Care Claim Payment 835 005010X221A1 transaction set model. The Health Care Claim Payment transaction set organizes loops into a hierarchical and nested model. """ -from x12.models import X12SegmentGroup -from x12.segments import ( +from linuxforhealth.x12.models import X12SegmentGroup +from linuxforhealth.x12.segments import ( SeSegment, BprSegment, DtmSegment, diff --git a/src/x12/transactions/x12_835_005010X221A1/parsing.py b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/parsing.py similarity index 99% rename from src/x12/transactions/x12_835_005010X221A1/parsing.py rename to src/linuxforhealth/x12/transactions/x12_835_005010X221A1/parsing.py index f5dfb08..fa42214 100644 --- a/src/x12/transactions/x12_835_005010X221A1/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/parsing.py @@ -9,7 +9,7 @@ Loop parsing functions are implemented as set_[description]_loop(context: X12ParserContext, segment_data: Dict). """ from enum import Enum -from x12.parsing import X12ParserContext, match +from linuxforhealth.x12.parsing import X12ParserContext, match from typing import Dict diff --git a/src/x12/transactions/x12_835_005010X221A1/segments.py b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/segments.py similarity index 99% rename from src/x12/transactions/x12_835_005010X221A1/segments.py rename to src/linuxforhealth/x12/transactions/x12_835_005010X221A1/segments.py index 3ee7189..ba6f0cc 100644 --- a/src/x12/transactions/x12_835_005010X221A1/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/segments.py @@ -3,7 +3,7 @@ Specialized segment models for the Health Care Claim Payment 835 005010X221A1 transaction set model. """ -from x12.segments import ( +from linuxforhealth.x12.segments import ( StSegment, TrnSegment, CurSegment, diff --git a/src/x12/transactions/x12_835_005010X221A1/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/transaction_set.py similarity index 89% rename from src/x12/transactions/x12_835_005010X221A1/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_835_005010X221A1/transaction_set.py index 31ea901..402ceb0 100644 --- a/src/x12/transactions/x12_835_005010X221A1/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_835_005010X221A1/transaction_set.py @@ -3,10 +3,10 @@ Defines the Health Care Claims Payment 835 005010X221A1 transaction set model. """ -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .loops import Header, Footer, Loop1000A, Loop1000B, Loop2000 from pydantic import root_validator -from x12.validators import validate_segment_count +from linuxforhealth.x12.validators import validate_segment_count from typing import List, Set diff --git a/src/x12/transactions/x12_837_005010X223A3/__init__.py b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/__init__.py similarity index 100% rename from src/x12/transactions/x12_837_005010X223A3/__init__.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X222A2/__init__.py diff --git a/src/x12/transactions/x12_837_005010X222A2/loops.py b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/loops.py similarity index 99% rename from src/x12/transactions/x12_837_005010X222A2/loops.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X222A2/loops.py index 2b76a9d..907ef3b 100644 --- a/src/x12/transactions/x12_837_005010X222A2/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/loops.py @@ -50,7 +50,7 @@ """ from decimal import Decimal -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .segments import ( HeaderStSegment, HeaderBhtSegment, @@ -138,7 +138,7 @@ Loop2430AmtSegment, Loop2010AaPerSegment, ) -from x12.segments import ( +from linuxforhealth.x12.segments import ( SeSegment, CurSegment, N3Segment, @@ -170,7 +170,7 @@ ) from typing import List, Optional, Dict from pydantic import Field, root_validator -from x12.validators import ( +from linuxforhealth.x12.validators import ( validate_duplicate_date_qualifiers, validate_duplicate_amt_codes, ) diff --git a/src/x12/transactions/x12_837_005010X222A2/parsing.py b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/parsing.py similarity index 99% rename from src/x12/transactions/x12_837_005010X222A2/parsing.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X222A2/parsing.py index 363947a..e015fd1 100644 --- a/src/x12/transactions/x12_837_005010X222A2/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/parsing.py @@ -10,8 +10,8 @@ """ from enum import Enum -from x12.parsing import match, X12ParserContext -from typing import Dict, Optional +from linuxforhealth.x12.parsing import match, X12ParserContext +from typing import Dict class TransactionLoops(str, Enum): diff --git a/src/x12/transactions/x12_837_005010X222A2/segments.py b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/segments.py similarity index 99% rename from src/x12/transactions/x12_837_005010X222A2/segments.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X222A2/segments.py index c23ff0c..c036723 100644 --- a/src/x12/transactions/x12_837_005010X222A2/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/segments.py @@ -4,7 +4,7 @@ Specialized segment models for the HealthCare Claim Professional 837 005010X222A2 transaction. """ -from x12.segments import ( +from linuxforhealth.x12.segments import ( StSegment, BhtSegment, Nm1Segment, diff --git a/src/x12/transactions/x12_837_005010X222A2/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/transaction_set.py similarity index 79% rename from src/x12/transactions/x12_837_005010X222A2/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X222A2/transaction_set.py index 6265b0f..4719967 100644 --- a/src/x12/transactions/x12_837_005010X222A2/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X222A2/transaction_set.py @@ -4,11 +4,11 @@ Defines the Professional Claims 837 005010X222A2 transaction set model. """ -from x12.models import X12SegmentGroup -from .loops import Header, Footer, Loop1000A, Loop1000B, Loop2000A, Loop2300 +from linuxforhealth.x12.models import X12SegmentGroup +from .loops import Header, Footer, Loop1000A, Loop1000B, Loop2000A from pydantic import Field, root_validator -from typing import List, Dict -from x12.validators import validate_segment_count +from typing import List +from linuxforhealth.x12.validators import validate_segment_count class HealthCareClaimProfessional(X12SegmentGroup): diff --git a/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/__init__.py b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/x12/transactions/x12_837_005010X223A3/loops.py b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/loops.py similarity index 99% rename from src/x12/transactions/x12_837_005010X223A3/loops.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X223A3/loops.py index 63427eb..5f1cfa8 100644 --- a/src/x12/transactions/x12_837_005010X223A3/loops.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/loops.py @@ -47,7 +47,7 @@ """ from decimal import Decimal -from x12.models import X12SegmentGroup +from linuxforhealth.x12.models import X12SegmentGroup from .segments import ( HeaderStSegment, HeaderBhtSegment, @@ -131,7 +131,7 @@ Loop2430AmtSegment, Loop2010AaPerSegment, ) -from x12.segments import ( +from linuxforhealth.x12.segments import ( SeSegment, Cl1Segment, CurSegment, @@ -157,7 +157,7 @@ ) from typing import List, Optional, Dict from pydantic import Field, root_validator -from x12.validators import ( +from linuxforhealth.x12.validators import ( validate_duplicate_date_qualifiers, validate_duplicate_amt_codes, ) diff --git a/src/x12/transactions/x12_837_005010X223A3/parsing.py b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/parsing.py similarity index 99% rename from src/x12/transactions/x12_837_005010X223A3/parsing.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X223A3/parsing.py index 01f22f9..817afc9 100644 --- a/src/x12/transactions/x12_837_005010X223A3/parsing.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/parsing.py @@ -10,7 +10,7 @@ """ from enum import Enum -from x12.parsing import match, X12ParserContext +from linuxforhealth.x12.parsing import match, X12ParserContext from typing import Dict diff --git a/src/x12/transactions/x12_837_005010X223A3/segments.py b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/segments.py similarity index 99% rename from src/x12/transactions/x12_837_005010X223A3/segments.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X223A3/segments.py index 2863873..9a90f9f 100644 --- a/src/x12/transactions/x12_837_005010X223A3/segments.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/segments.py @@ -4,7 +4,7 @@ Specialized segment models for the HealthCare Claim Institutional 837 005010X223A3 transaction. """ -from x12.segments import ( +from linuxforhealth.x12.segments import ( StSegment, BhtSegment, Nm1Segment, diff --git a/src/x12/transactions/x12_837_005010X223A3/transaction_set.py b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/transaction_set.py similarity index 79% rename from src/x12/transactions/x12_837_005010X223A3/transaction_set.py rename to src/linuxforhealth/x12/transactions/x12_837_005010X223A3/transaction_set.py index 83e7603..17b648b 100644 --- a/src/x12/transactions/x12_837_005010X223A3/transaction_set.py +++ b/src/linuxforhealth/x12/transactions/x12_837_005010X223A3/transaction_set.py @@ -4,11 +4,11 @@ Defines the Institutional Claims 837 005010X223A3 transaction set model. """ -from x12.models import X12SegmentGroup -from .loops import Header, Footer, Loop1000A, Loop1000B, Loop2000A, Loop2300 +from linuxforhealth.x12.models import X12SegmentGroup +from .loops import Header, Footer, Loop1000A, Loop1000B, Loop2000A from pydantic import Field, root_validator -from typing import List, Dict -from x12.validators import validate_segment_count +from typing import List +from linuxforhealth.x12.validators import validate_segment_count class HealthCareClaimInstitutional(X12SegmentGroup): diff --git a/src/x12/validators.py b/src/linuxforhealth/x12/validators.py similarity index 97% rename from src/x12/validators.py rename to src/linuxforhealth/x12/validators.py index 9dfa326..02ae56c 100644 --- a/src/x12/validators.py +++ b/src/linuxforhealth/x12/validators.py @@ -14,7 +14,7 @@ from typing import Dict, Union from collections import defaultdict from datetime import datetime -from x12.support import parse_x12_date, count_segments +from .support import parse_x12_date, count_segments def _validate_duplicate_codes(values: Dict, segment_name: str, code_field: str): @@ -92,7 +92,7 @@ def validate_date_field(cls, v, values: Dict) -> Union[datetime.date, str, None] :return: The validated date field value :raises: ValueError if the date field value is an invalid format. """ - from x12.segments import DtpSegment + from linuxforhealth.x12.segments import DtpSegment def handle_x12_date(date_string: str): """Parses a x12 date string, raising a ValueError if an error occurs""" diff --git a/src/tests/conftest.py b/src/tests/conftest.py index 623fbd6..ef57b13 100644 --- a/src/tests/conftest.py +++ b/src/tests/conftest.py @@ -5,9 +5,9 @@ """ import pytest -from x12.config import X12Config -from x12.models import X12Delimiters -from x12.parsing import X12ParserContext +from linuxforhealth.x12.config import X12Config +from linuxforhealth.x12.models import X12Delimiters +from linuxforhealth.x12.parsing import X12ParserContext @pytest.fixture diff --git a/src/tests/support.py b/src/tests/support.py index 5fb491b..fb47a76 100644 --- a/src/tests/support.py +++ b/src/tests/support.py @@ -3,7 +3,7 @@ Reusable assertions and utilities for X12 based test cases """ -from x12.io import X12ModelReader +from linuxforhealth.x12.io import X12ModelReader import os # base resource directory for "file fixtures" (sample x12 transactions) diff --git a/src/tests/test_common_validations.py b/src/tests/test_common_validations.py index 2f930bf..7c48728 100644 --- a/src/tests/test_common_validations.py +++ b/src/tests/test_common_validations.py @@ -3,7 +3,7 @@ Tests common validations that are shared across X12 transaction sets. """ -from x12.io import X12ModelReader +from linuxforhealth.x12.io import X12ModelReader import pytest diff --git a/src/tests/test_create_parser.py b/src/tests/test_create_parser.py index 416093b..e665310 100644 --- a/src/tests/test_create_parser.py +++ b/src/tests/test_create_parser.py @@ -4,8 +4,8 @@ Tests the parser creation function. """ import pytest -from x12.parsing import create_parser -from x12.models import X12Delimiters +from linuxforhealth.x12.parsing import create_parser +from linuxforhealth.x12.models import X12Delimiters @pytest.mark.parametrize( diff --git a/src/tests/test_encoding.py b/src/tests/test_encoding.py index fde6a6e..b1e6fde 100644 --- a/src/tests/test_encoding.py +++ b/src/tests/test_encoding.py @@ -3,7 +3,7 @@ Tests the X12 Custom JSON Encoder """ -from x12.encoding import X12JsonEncoder +from linuxforhealth.x12.encoding import X12JsonEncoder from decimal import Decimal import uuid import json diff --git a/src/tests/test_parsing_matcher.py b/src/tests/test_parsing_matcher.py index 3118a7d..08a9e58 100644 --- a/src/tests/test_parsing_matcher.py +++ b/src/tests/test_parsing_matcher.py @@ -1,6 +1,6 @@ import pytest from typing import Callable, Dict -from x12.parsing import X12ParserContext, match +from linuxforhealth.x12.parsing import X12ParserContext, match @pytest.fixture diff --git a/src/tests/test_segments.py b/src/tests/test_segments.py index 795d193..7847f40 100644 --- a/src/tests/test_segments.py +++ b/src/tests/test_segments.py @@ -3,9 +3,9 @@ Tests the Pydantic X12 segment models """ -from x12.segments import * +from linuxforhealth.x12.segments import * from decimal import Decimal -from x12.models import X12Delimiters +from linuxforhealth.x12.models import X12Delimiters def test_aaa_segment(): diff --git a/src/tests/test_support.py b/src/tests/test_support.py index cb425f1..1501125 100644 --- a/src/tests/test_support.py +++ b/src/tests/test_support.py @@ -5,14 +5,14 @@ """ import pytest import datetime -from x12.support import ( +from linuxforhealth.x12.support import ( is_x12_data, is_x12_file, parse_x12_date, parse_interchange_date, count_segments, ) -from x12.io import X12ModelReader +from linuxforhealth.x12.io import X12ModelReader @pytest.mark.parametrize( diff --git a/src/tests/test_x12_model_reader.py b/src/tests/test_x12_model_reader.py index cece5c0..138ffa4 100644 --- a/src/tests/test_x12_model_reader.py +++ b/src/tests/test_x12_model_reader.py @@ -3,7 +3,7 @@ Supports general model streaming tests validating the number of models returned, expected payload, etc. """ -from x12.io import X12ModelReader +from linuxforhealth.x12.io import X12ModelReader def test_multiple_transactions(large_x12_message): diff --git a/src/tests/test_x12_parser_context.py b/src/tests/test_x12_parser_context.py index a1ce319..5e49475 100644 --- a/src/tests/test_x12_parser_context.py +++ b/src/tests/test_x12_parser_context.py @@ -1,7 +1,7 @@ """ test_x12_parser_context.py """ -from x12.parsing import X12ParserContext +from linuxforhealth.x12.parsing import X12ParserContext def test_init(x12_parser_context: X12ParserContext): diff --git a/src/tests/test_x12_segment_reader.py b/src/tests/test_x12_segment_reader.py index dc80a18..a872493 100644 --- a/src/tests/test_x12_segment_reader.py +++ b/src/tests/test_x12_segment_reader.py @@ -3,8 +3,8 @@ """ import pytest -import x12.io -from x12.io import X12SegmentReader +import linuxforhealth.x12.io +from linuxforhealth.x12.io import X12SegmentReader @pytest.mark.parametrize( @@ -135,7 +135,7 @@ def mock_get_config(): return config with monkeypatch.context() as m: - m.setattr(x12.io, "get_config", mock_get_config) + m.setattr(linuxforhealth.x12.io, "get_config", mock_get_config) segment_counter = 0 with X12SegmentReader(large_x12_message) as r: