assembly-api-client 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- assembly_api_client-0.1.0/.github/workflows/release.yml +47 -0
- assembly_api_client-0.1.0/.github/workflows/update_client.yml +60 -0
- assembly_api_client-0.1.0/.gitignore +12 -0
- assembly_api_client-0.1.0/.pre-commit-config.yaml +7 -0
- assembly_api_client-0.1.0/.python-version +1 -0
- assembly_api_client-0.1.0/CHANGELOG.md +66 -0
- assembly_api_client-0.1.0/PKG-INFO +142 -0
- assembly_api_client-0.1.0/README.md +109 -0
- assembly_api_client-0.1.0/pyproject.toml +90 -0
- assembly_api_client-0.1.0/run_codegen.py +99 -0
- assembly_api_client-0.1.0/scripts/bump_version.py +33 -0
- assembly_api_client-0.1.0/scripts/generate_fixtures.py +140 -0
- assembly_api_client-0.1.0/scripts/update_client.sh +22 -0
- assembly_api_client-0.1.0/src/assembly_client/__init__.py +5 -0
- assembly_api_client-0.1.0/src/assembly_client/api.py +265 -0
- assembly_api_client-0.1.0/src/assembly_client/cli.py +115 -0
- assembly_api_client-0.1.0/src/assembly_client/codegen/generator.py +120 -0
- assembly_api_client-0.1.0/src/assembly_client/errors.py +37 -0
- assembly_api_client-0.1.0/src/assembly_client/generated/__init__.py +555 -0
- assembly_api_client-0.1.0/src/assembly_client/generated/models.py +5860 -0
- assembly_api_client-0.1.0/src/assembly_client/generated/services.py +283 -0
- assembly_api_client-0.1.0/src/assembly_client/parser.py +466 -0
- assembly_api_client-0.1.0/src/assembly_client/sync.py +171 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_Focus.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/260/354/202/260_/353/266/204/354/204/235.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/275/354/240/234_/354/202/260/354/227/205/353/217/231/355/226/245_/354/235/264/354/212/210.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/275/354/240/234_/354/240/225/354/261/205_/353/260/217_/353/217/231/355/226/245_/353/266/204/354/204/235.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/275/354/240/234/354/236/254/354/240/225/354/210/230/354/262/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/275/354/240/234/354/240/204/353/247/235.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/353/214/200/355/225/234/353/257/274/352/265/255_/352/263/265/352/263/265/352/270/260/352/264/200.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/353/214/200/355/225/234/353/257/274/352/265/255_/354/236/254/354/240/225.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/353/214/200/355/225/234/353/257/274/352/265/255_/354/247/200/353/260/251/354/236/254/354/240/225.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/353/271/204/354/232/251/354/266/224/352/263/204_/353/260/217_/354/236/254/354/240/225/354/240/204/353/247/235.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/354/230/210/354/202/260_/353/266/204/354/204/235.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/354/236/254/354/240/225/353/217/231/355/226/245_/354/235/264/354/212/210.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/354/236/254/354/240/225/354/202/254/354/227/205_/355/217/211/352/260/200.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/354/241/260/354/204/270/353/266/204/354/204/235_/353/260/217_/354/227/260/352/265/254.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/354/241/260/354/204/270/354/210/230/354/262/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NABO_/354/266/224/352/263/204_/354/204/270/354/240/234_/354/235/264/354/212/210.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/352/270/260/355/203/200.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/353/263/270/355/232/214/354/235/230.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/354/234/204/354/233/220/355/232/214.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/354/235/230/354/236/245/353/213/250.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/354/235/270/353/254/274.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/354/240/225/353/213/271.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/355/206/240/353/241/240/355/232/214_/354/204/270/353/257/270/353/202/230.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/_8/352/270/211_/352/263/265/352/260/234/352/262/275/354/237/201_/354/261/204/354/232/251/355/230/204/355/231/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/_9/352/270/211_/352/263/265/352/260/234/352/262/275/354/237/201_/354/261/204/354/232/251/355/230/204/355/231/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/352/265/255/355/232/214_/354/206/214/354/213/235_/353/260/217_/353/263/264/353/217/204/354/236/220/353/243/214.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/352/265/255/355/232/214/354/235/230/354/233/220_/354/240/225/353/263/264.json +38 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/352/265/255/355/232/214/354/235/230/354/236/245_/354/227/260/354/204/244/353/254/270.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/352/265/255/355/232/214/354/235/230/354/236/245_/354/243/274/354/232/224/353/217/231/354/240/225.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/352/265/255/355/232/214/354/235/274/354/240/225.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/354/234/204/354/233/220/355/232/214_/354/240/225/353/263/264.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures/_/354/230/201/353/254/270_/354/265/234/354/213/240_/354/262/230/353/246/254_/354/235/230/354/225/210.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures/bills.json +141 -0
- assembly_api_client-0.1.0/tests/fixtures/members.json +146 -0
- assembly_api_client-0.1.0/tests/fixtures//352/263/204/353/245/230/354/235/230/354/225/210_/355/206/265/352/263/204.json +40 -0
- assembly_api_client-0.1.0/tests/fixtures//352/263/265/354/262/255/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/354/240/225/352/260/220/354/202/254_/352/262/260/352/263/274/353/263/264/352/263/240/354/204/234.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/354/240/225/352/260/220/354/202/254_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/354/240/225/354/241/260/354/202/254_/352/262/260/352/263/274/353/263/264/352/263/240/354/204/234.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/354/240/225/354/241/260/354/202/254_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214_/352/270/260/354/236/220/355/232/214/352/262/254/354/236/245_/354/202/254/354/232/251/355/230/204/355/231/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214_/353/260/217_/352/265/255/355/232/214/354/202/254/353/254/264/354/262/230_/354/206/214/352/264/200_/353/262/225/354/235/270/353/263/204_/353/263/264/354/241/260/352/270/210_/354/230/210/354/202/260.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214_/353/263/264/354/234/240_/354/236/220/354/202/260_/352/261/264/353/254/274_.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214_/353/263/264/354/234/240_/354/236/220/354/202/260_/354/240/204/354/262/264_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214_/353/263/264/354/234/240_/354/236/220/354/202/260_/355/206/240/354/247/200_.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214_/354/213/234/354/204/244/353/254/274_/354/225/210/353/202/264.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/352/260/234/353/260/251/355/226/211/354/202/254_/354/235/274/354/240/225.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/352/265/255/355/232/214/353/212/224_/354/247/200/352/270/210.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/352/265/255/355/232/214/353/217/231/355/226/245/352/270/260/355/203/200.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/352/267/270/352/261/264_/354/235/264/353/240/207/354/212/265/353/213/210/353/213/244.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/353/260/234/355/226/211/353/254/274_/353/260/217_/353/263/264/352/263/240/354/204/234.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/353/263/264/354/242/214/354/247/204_/354/235/264/354/225/274/352/270/260.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/353/266/200/354/235/230/354/236/245/353/217/231/355/226/245.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/202/254/353/254/264/354/264/235/354/236/245/353/217/231/355/226/245.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/203/201/354/236/204/354/234/204_/353/263/270/355/232/214/354/235/230.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/231/270/353/266/200/352/270/260/352/263/240.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/235/230/354/233/220_/354/236/205/353/262/225/354/225/210.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/235/230/354/233/220/354/213/244_/355/226/211/354/202/254.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/235/230/354/233/220/354/235/230_/353/247/233/352/263/274/353/251/213.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/211/264/354/212/244ON_/354/235/230/354/236/245/353/217/231/355/226/245.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/352/270/260/355/203/200_/355/226/211/354/240/225/354/240/225/353/263/264_/352/263/265/355/221/234.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/202/254/354/227/205/354/227/220_/352/264/200/355/225/234_/355/226/211/354/240/225/354/240/225/353/263/264_/352/263/265/355/221/234.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/227/205/353/254/264/354/266/224/354/247/204/353/271/204_/354/247/221/355/226/211/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/227/260/352/260/204/353/263/264/352/263/240/354/204/234.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/354/262/230/353/246/254/355/230/204/355/231/251_/353/252/251/353/241/235.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/240/225/353/263/264/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/240/225/354/261/205/354/227/220_/352/264/200/355/225/234_/355/226/211/354/240/225/354/240/225/353/263/264_/352/263/265/355/221/234.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/240/225/354/261/205/354/227/260/352/265/254/354/232/251/354/227/255_/353/263/264/352/263/240/354/204/234.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/354/240/234/352/263/265_/354/236/220/353/243/214_/355/206/265/355/225/251_API.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/355/226/211/354/240/225/352/260/220/354/213/234_/355/226/211/354/240/225/354/240/225/353/263/264_/352/263/265/355/221/234.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/217/204/354/204/234/352/264/200_/355/226/211/354/240/225/354/240/225/353/263/264_/352/263/265/355/221/234/353/252/251/353/241/235.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/254/270/355/231/224/352/267/271/354/236/245_/352/263/265/354/227/260_/354/235/274/354/240/225.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/254/270/355/231/224/352/267/271/354/236/245_/354/230/201/355/231/224_/354/235/274/354/240/225.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/353/257/270/353/236/230/354/203/235/352/260/201.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/353/257/270/353/236/230/354/204/234/355/217/211.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/353/257/270/353/236/230/354/271/274/353/237/274.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/353/257/270/353/236/230/355/217/254/353/237/274.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/353/270/214/353/246/254/355/224/204/355/230/225_/354/213/254/354/270/265/353/266/204/354/204/235_/353/263/264/352/263/240/354/204/234.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/354/227/260/354/260/250/353/263/264/352/263/240/354/204/234.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/257/270/353/236/230/354/227/260/352/265/254/354/233/220_/354/240/234/352/263/265_/354/236/220/353/243/214_/355/206/265/355/225/251_API.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/260/225/353/254/274/352/264/200_/355/226/211/354/202/254_/354/235/274/354/240/225.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/260/234/352/260/204/353/254/274_/355/206/265/355/225/251_API.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/353/260/251/354/206/241_/355/216/270/354/204/261/355/221/234.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/202/254/353/254/264/354/262/230_1/354/226/265/354/233/220_/354/235/264/354/203/201_/352/263/204/354/225/275_/355/230/204/355/231/251.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/202/254/353/254/264/354/262/230_2/354/262/234/353/247/214/354/233/220_/354/235/264/354/203/201_/354/210/230/354/235/230/352/263/204/354/225/275_/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/202/254/353/254/264/354/262/230_/354/227/205/353/254/264/354/266/224/354/247/204/353/271/204_/354/247/221/355/226/211/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/202/254/353/254/264/354/262/230_/354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/354/262/230/353/246/254/355/230/204/355/231/251_/353/252/251/353/241/235.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/202/254/353/254/264/354/262/230_/354/240/225/353/263/264/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/230/210/354/202/260/354/240/225/354/261/205/354/262/230_/354/227/205/353/254/264/354/266/224/354/247/204/353/271/204_/354/247/221/355/226/211/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/230/210/354/202/260/354/240/225/354/261/205/354/262/230_/354/227/260/354/260/250/353/263/264/352/263/240/354/204/234.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/230/210/354/202/260/354/240/225/354/261/205/354/262/230_/354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/354/262/230/353/246/254/355/230/204/355/231/251_/353/252/251/353/241/235.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/230/210/354/202/260/354/240/225/354/261/205/354/262/230_/354/240/225/353/263/264/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/230/210/354/202/260/354/240/225/354/261/205/354/262/230_/354/240/234/352/263/265_/354/236/220/353/243/214_/355/206/265/355/225/251_API.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/230/210/354/202/260/354/240/225/354/261/205/354/262/230_/355/231/215/353/263/264/353/254/274.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_SNS/354/240/225/353/263/264.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/352/262/270/354/247/201_/352/262/260/354/240/225_/353/202/264/354/227/255.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/352/270/260/354/236/220/355/232/214/352/262/254.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/353/260/234/354/235/230/353/262/225/353/245/240/354/225/210.json +45 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/353/263/264/354/242/214/354/247/201/354/233/220_/354/261/204/354/232/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/353/263/270/355/232/214/354/235/230_/354/235/230/354/202/254/354/235/274/354/240/225.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/353/263/270/355/232/214/354/235/230_/355/221/234/352/262/260/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/203/201/354/236/204/354/234/204_/355/231/234/353/217/231.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/204/270/353/257/270/353/202/230_/354/235/274/354/240/225.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/206/214/352/267/234/353/252/250_/354/227/260/352/265/254/354/232/251/354/227/255_/352/262/260/352/263/274/353/263/264/352/263/240/354/204/234.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/227/260/352/265/254/353/213/250/354/262/264_/353/223/261/353/241/235/355/230/204/355/231/251.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/230/201/354/203/201/355/232/214/354/235/230/353/241/235_/353/260/234/354/226/270/354/230/201/354/203/201_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/234/204/354/233/220/355/232/214_/352/262/275/353/240/245.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/234/204/354/233/220/355/232/214_/354/235/230/354/202/254/354/235/274/354/240/225.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/235/230/354/233/220/354/235/264/353/240/245.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/235/230/354/240/225/353/263/264/352/263/240/354/204/234.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/235/270/354/240/201/354/202/254/355/225/255.json +46 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/240/225/353/263/264_/355/206/265/355/225/251_API.json +47 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/240/225/354/261/205_/354/204/270/353/257/270/353/202/230_/352/260/234/354/265/234_/355/230/204/355/231/251.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/240/225/354/261/205/354/236/220/353/243/214/354/213/244.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/247/201/353/254/264/354/203/201_/352/265/255/354/231/270/355/231/234/353/217/231_/354/213/240/352/263/240_/353/202/264/354/227/255.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/233/220_/354/262/255/354/233/220/355/230/204/355/231/251.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/230/354/236/245_/354/243/274/354/232/224/354/235/274/354/240/225.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/235/274/354/240/225_/355/206/265/355/225/251_API.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/352/270/260/355/203/200/354/236/220/353/243/214.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/204/270/353/257/270/353/202/230_/352/260/204/353/213/264/355/232/214.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/225/214/353/246/274/354/247/200_/352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230/353/263/264_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/225/214/353/246/274/354/247/200_/355/231/215/353/263/264/354/261/205/354/236/220_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/205/353/254/264/354/266/224/354/247/204/353/271/204_/354/247/221/355/226/211/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_NARS_/355/230/204/354/225/210/353/266/204/354/204/235_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/352/265/255/354/240/225/352/260/220/354/202/254/352/264/200/353/240/250_/353/263/264/352/263/240/354/204/234__.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/352/265/255/354/240/234/355/206/265/352/263/204_/353/217/231/355/226/245/352/263/274_/353/266/204/354/204/235_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/354/231/270/352/265/255/354/236/205/353/262/225_/353/217/231/355/226/245/352/263/274_/353/266/204/354/204/235_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/354/231/270/352/265/255/354/236/205/353/262/225_/354/240/225/354/261/205_/353/266/204/354/204/235_.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/354/235/264/354/212/210/354/231/200_/353/205/274/354/240/220_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/354/236/205/353/262/225_/354/240/225/354/261/205/353/263/264/352/263/240/354/204/234_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/354/236/205/353/262/225/354/230/201/355/226/245/353/266/204/354/204/235/353/263/264/352/263/240/354/204/234_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/352/265/254/353/263/264/352/263/240/354/204/234_/354/247/200/355/221/234/353/241/234_/353/263/264/353/212/224_/354/235/264/354/212/210_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/227/260/354/260/250/353/263/264/352/263/240/354/204/234.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/354/262/230/353/246/254/355/230/204/355/231/251_/353/252/251/353/241/235.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/240/225/353/263/264/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/240/225/354/261/205/354/227/260/352/265/254/354/232/251/354/227/255/354/236/220/353/243/214.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/354/240/234/352/263/265_/354/236/220/353/243/214_/355/206/265/355/225/251_API.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/236/205/353/262/225/354/241/260/354/202/254/354/262/230_/355/225/231/354/210/240/354/247/200_/354/236/205/353/262/225/352/263/274_/354/240/225/354/261/205_.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/261/204/354/232/251_/354/242/205/355/225/251/355/230/204/355/231/251.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//352/265/255/355/232/214/354/261/204/354/232/251/354/240/225/353/263/264.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//353/202/240/354/247/234/353/263/204_/354/235/230/354/240/225/355/231/234/353/217/231.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//353/214/200/355/206/265/353/240/271/354/213/234/354/240/225/354/227/260/354/204/244_/355/217/254/355/225/250_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//353/214/200/355/206/265/353/240/271/354/267/250/354/236/204/354/227/260/354/204/244_/355/217/254/355/225/250_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//353/214/200/355/225/234/353/257/274/352/265/255_/352/262/275/354/240/234.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//353/214/200/355/225/234/353/257/274/352/265/255_/354/241/260/354/204/270.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/353/245/240/354/225/210_/354/213/254/354/202/254_/353/260/217_/354/262/230/353/246/254_/352/263/204/353/245/230/354/235/230/354/225/210_.json +43 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/353/245/240/354/225/210_/354/213/254/354/202/254_/353/260/217_/354/262/230/353/246/254_/353/263/270/355/232/214/354/235/230/353/266/200/354/235/230/354/225/210/352/261/264_.json +39 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/353/245/240/354/225/210_/354/213/254/354/202/254_/353/260/217_/354/262/230/353/246/254_/354/234/204/354/233/220/355/232/214/354/225/210__/353/214/200/354/225/210_.json +39 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/353/245/240/354/225/210_/354/213/254/354/202/254_/353/260/217_/354/262/230/353/246/254_/354/235/230/354/225/210/352/262/200/354/203/211_.json +46 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/353/245/240/354/225/210_/354/213/254/354/202/254_/353/260/217_/354/262/230/353/246/254_/354/262/230/353/246/254/354/235/230/354/225/210_.json +43 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/353/245/240/354/225/210_/354/213/254/354/202/254_/353/260/217_/354/262/230/353/246/254_/354/265/234/352/267/274_/353/263/270/355/232/214/354/235/230/354/262/230/353/246/254_/354/235/230/354/225/210_.json +43 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/354/240/234/354/202/254/353/241/200_/354/227/260/352/265/254/353/260/234/355/221/234.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//353/262/225/354/240/234/354/213/244_/353/260/234/352/260/204/354/236/220/353/243/214.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/264/353/217/204/354/236/220/353/243/214.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/270/355/232/214/354/235/230_/354/235/274/354/240/225.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/270/355/232/214/354/235/230_/354/262/230/353/246/254/354/225/210/352/261/264_/352/262/260/354/202/260.json +43 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/270/355/232/214/354/235/230_/354/262/230/353/246/254/354/225/210/352/261/264_/352/270/260/355/203/200.json +46 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/270/355/232/214/354/235/230_/354/262/230/353/246/254/354/225/210/352/261/264_/353/262/225/353/245/240/354/225/210.json +48 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/270/355/232/214/354/235/230_/354/262/230/353/246/254/354/225/210/352/261/264_/354/230/210/354/202/260/354/225/210.json +43 -0
- assembly_api_client-0.1.0/tests/fixtures//353/263/270/355/232/214/354/235/230_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/202/254/354/227/205/353/263/204_/354/230/210/354/202/260_/355/216/270/354/204/261_/352/267/234/353/252/250.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/204/234/353/251/264/354/247/210/354/235/230/353/213/265/353/263/200/354/204/234_/353/252/251/353/241/235.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//354/206/214/354/234/204/354/233/220/355/232/214_/355/232/214/354/235/230/353/241/235.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/210/230/354/236/205/354/247/225/354/210/230/355/230/204/355/231/251_/354/210/230/354/236/205/353/252/251/353/263/204_.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//354/210/230/354/236/205/354/247/225/354/210/230/355/230/204/355/231/251_/354/210/230/354/236/205/355/225/255/353/263/204_.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//354/213/234/353/257/274/354/235/230/354/240/225/354/227/260/354/210/230.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/213/234/354/240/225_/353/260/217_/354/262/230/353/246/254_/354/232/224/352/265/254/354/202/254/355/225/255/354/227/220_/353/214/200/355/225/234_/352/262/260/352/263/274/353/263/264/352/263/240/354/204/234.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//354/213/234/354/240/225/354/241/260/354/271/230_/352/262/260/352/263/274/353/263/264/352/263/240/354/204/234_/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/213/234/354/262/255/352/260/201/354/236/220/353/243/214_/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/213/244/354/213/234/352/260/204_/354/235/230/354/202/254/354/244/221/352/263/204_/355/230/204/355/231/251.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/225/204/355/212/270/352/260/244/353/237/254/353/246/254_/354/240/204/354/213/234_/354/235/274/354/240/225.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//354/226/264/353/246/260/354/235/264/352/265/255/355/232/214_/352/260/234/354/265/234_/352/262/260/352/263/274.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/226/264/353/246/260/354/235/264/352/265/255/355/232/214_/354/232/260/354/210/230/353/262/225/353/245/240/354/225/210_/354/206/214/352/260/234.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214_/354/204/240/352/261/260/354/235/274__/354/235/230/354/233/220/354/240/225/354/210/230__/354/236/204/352/270/260/354/240/225/353/263/264.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214_/354/240/225/353/213/271/353/263/204_/352/265/255/355/232/214/354/235/230/354/233/220_/354/247/200/354/227/255/353/266/204/355/217/254.json +46 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214/354/235/230/354/233/220_/354/234/204/354/233/220/355/232/214_/352/262/275/353/240/245.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214/354/235/230/354/233/220_/354/235/230/354/233/220/354/235/264/353/240/245.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214/354/235/230/354/233/220_/354/235/270/354/240/201/354/202/254/355/225/255.json +37 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214/354/235/230/354/233/220_/354/236/254/354/204/240_/355/230/204/355/231/251.json +35 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214/354/235/230/354/233/220_/355/230/204/355/231/251.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/352/265/255/355/232/214/354/235/230/354/236/245/353/213/250_/354/240/225/353/263/264.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/354/227/254/354/204/261_/352/265/255/355/232/214/354/235/230/354/233/220_/355/230/204/355/231/251.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/354/235/230/354/225/210_/355/206/265/352/263/204.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/255/353/214/200_/354/240/225/353/213/271/353/263/204_/352/265/255/355/232/214/354/235/230/354/233/220_/354/204/240/352/261/260/352/262/260/352/263/274.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/260/352/265/254/353/213/250/354/262/264_/354/227/260/352/265/254/355/231/234/353/217/231_/353/263/264/352/263/240/354/204/234.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/260/352/265/254/353/213/250/354/262/264_/354/227/260/352/265/254/355/231/234/353/217/231/353/271/204_/354/247/221/355/226/211/355/230/204/355/231/251.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/260/352/265/254/353/213/250/354/262/264_/355/231/234/353/217/231/354/213/244/354/240/201.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/260/353/217/204/353/263/204_/354/227/260/352/265/254/353/213/250/354/262/264_/352/261/264/354/210/230.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/260/354/204/235/355/232/214/354/235/230_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/227/260/354/260/250/353/263/264/352/263/240/354/204/234.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/201/354/203/201/355/232/214/354/235/230/353/241/235_/353/252/251/353/241/235.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/210/352/262/260/354/202/260_/354/213/254/354/202/254/354/240/225/353/263/264.json +35 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/210/352/262/260/354/202/260_/354/230/210/353/271/204/354/213/254/354/202/254_/354/240/225/353/263/264_/354/241/260/355/232/214.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/210/352/262/260/354/202/260_/354/242/205/355/225/251/354/213/254/354/202/254_/355/232/214/354/235/230/354/240/225/353/263/264_/354/241/260/355/232/214.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/210/352/262/260/354/202/260/355/212/271/353/263/204/354/234/204/354/233/220/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/210/354/202/260/354/240/225/354/261/205/354/227/260/352/265/254.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/230/210/354/202/260/354/266/230/354/266/224.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/231/270/353/271/210/354/227/260/354/204/244_/355/217/254/355/225/250_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/232/260/354/210/230/354/227/260/352/265/254/353/213/250/354/262/264_/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214_/352/263/204/353/245/230/353/262/225/353/245/240/354/225/210.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214_/354/234/204/354/233/220_/353/252/205/353/213/250.json +37 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214_/354/236/220/353/243/214/354/213/244.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214_/355/230/204/355/231/251_/354/240/225/353/263/264.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214/353/263/204_/352/260/234/354/240/225/353/214/200/354/203/201_/353/262/225/353/245/240_/355/230/204/355/231/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214/353/263/204_/352/263/265/354/262/255/355/232/214_/354/235/274/354/240/225.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214/353/263/204_/354/206/214/354/234/204/354/233/220/355/232/214_/354/235/274/354/240/225.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214/353/263/204_/354/235/274/354/240/225.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/234/204/354/233/220/355/232/214/353/263/204_/354/240/204/354/262/264/355/232/214/354/235/230_/354/235/274/354/240/225.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/202/254/354/235/274/354/240/225/352/263/265/354/247/200.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210_/353/262/225/354/202/254/354/234/204_/355/232/214/354/235/230/354/240/225/353/263/264_/354/241/260/355/232/214.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210_/354/203/201/354/204/270/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210_/354/213/254/354/202/254/354/240/225/353/263/264_/354/230/210_/352/262/260/354/202/260_/354/240/234/354/231/270_.json +35 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210_/354/234/204/354/233/220/355/232/214/354/213/254/354/202/254_/355/232/214/354/235/230/354/240/225/353/263/264_/354/241/260/355/232/214.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210_/354/240/221/354/210/230/353/252/251/353/241/235.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210_/354/240/234/354/225/210/354/236/220/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210/353/263/204_/355/221/234/352/262/260/355/230/204/355/231/251.json +38 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210/353/263/204_/355/232/214/354/235/230/353/241/235_/353/252/251/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/225/210/354/240/225/353/263/264_/355/206/265/355/225/251_API.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/233/220/354/213/244_/354/247/200/354/233/220/352/262/275/353/271/204_/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/233/220/354/213/244_/355/226/211/354/202/254_/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/233/220/354/231/270/352/265/220/355/230/221/354/235/230/355/232/214_/353/252/205/353/213/250.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/233/220/354/271/234/354/204/240/355/230/221/355/232/214_/354/236/204_/355/232/214/354/233/220_/353/252/205/353/213/250.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/236/245/353/213/250_/353/263/264/353/217/204/354/236/220/353/243/214.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/354/236/245/353/213/250_/354/243/274/354/232/224/354/235/274/354/240/225.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/355/232/214/354/231/270/352/265/220_/353/217/231/355/226/245.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/355/232/214/354/231/270/352/265/220_/353/217/231/355/226/245/352/263/274_/353/266/204/354/204/235.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/355/232/214/354/231/270/352/265/220_/354/213/244/354/213/234/353/202/264/354/227/255.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/355/232/214/354/231/270/352/265/220_/354/230/201/353/254/270/354/235/230/355/232/214/354/232/251/354/226/264/352/262/200/354/203/211.json +25 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/355/232/214/354/231/270/352/265/220_/355/225/264/354/231/270/354/243/274/354/232/224/353/262/225/353/245/240_/354/240/234/352/260/234/354/240/225.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/230/355/232/214/354/231/270/352/265/220/355/217/254/353/237/274_/355/231/234/353/217/231/353/263/264/352/263/240.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/270/354/202/254/354/262/255/353/254/270/355/232/214.json +38 -0
- assembly_api_client-0.1.0/tests/fixtures//354/235/270/354/202/254/354/262/255/353/254/270/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/236/205/353/262/225/352/263/240/354/213/234_5/352/270/211__/354/261/204/354/232/251/355/230/204/355/231/251.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/204/354/233/220/354/234/204/354/233/220/355/232/214_/354/235/274/354/240/225.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/204/354/233/220/354/234/204/354/233/220/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/225/353/213/271_/353/260/217_/352/265/220/354/204/255/353/213/250/354/262/264_/354/235/230/354/204/235/354/210/230_/355/230/204/355/231/251.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/354/235/264/354/235/230/354/213/240/354/262/255_/354/262/230/353/246/254/355/230/204/355/231/251.json +31 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/355/226/211/354/240/225/354/206/214/354/206/241_/355/214/220/352/262/260/355/230/204/355/231/251.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/225/353/263/264/352/263/265/352/260/234/354/262/255/352/265/254_/355/226/211/354/240/225/354/213/254/355/214/220_/352/262/260/352/263/274/355/230/204/355/231/251.json +32 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/225/354/261/205/354/227/260/352/265/254/354/232/251/354/227/255.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/240/234/354/225/210/354/204/244/353/252/205/354/204/234_/353/252/251/353/241/235.json +29 -0
- assembly_api_client-0.1.0/tests/fixtures//354/242/205/353/243/214/353/220/234_/354/236/205/353/262/225/354/230/210/352/263/240.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//354/243/274/354/232/224/354/240/225/354/271/230/354/235/274/354/240/225.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/247/200/353/260/251/354/235/230/355/232/214_/354/227/260/354/210/230_/352/265/220/354/234/241/354/235/274/354/240/225.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/247/200/354/227/255/355/230/204/354/225/210_/354/236/205/353/262/225/354/247/200/354/233/220_/355/206/240/353/241/240/355/232/214_/352/260/234/354/265/234_/353/202/264/354/227/255.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//354/247/200/354/266/234/354/247/221/355/226/211/355/230/204/355/231/251_/353/213/250/354/234/204/354/202/254/354/227/205/353/263/204_.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//354/247/200/354/266/234/354/247/221/355/226/211/355/230/204/355/231/251_/354/204/270/353/266/200/354/202/254/354/227/205/353/263/204_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/247/204/355/226/211/354/244/221_/354/236/205/353/262/225/354/230/210/352/263/240.json +33 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/230/353/246/254_/354/235/230/354/225/210/355/206/265/352/263/204_/353/260/234/354/235/230/354/243/274/354/262/264/353/263/204_/353/262/225/353/245/240/354/225/210_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/230/353/246/254_/354/235/230/354/225/210/355/206/265/352/263/204_/354/234/204/354/233/220/355/232/214/353/263/204_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/230/353/246/254_/354/235/230/354/225/210/355/206/265/352/263/204_/354/234/204/354/233/220/355/232/214/353/263/204_/353/262/225/353/245/240/354/225/210_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/230/353/246/254_/354/235/230/354/225/210/355/206/265/352/263/204_/354/235/230/354/225/210/354/242/205/353/245/230/353/263/204_/354/234/204/354/233/220/355/232/214/353/263/204_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/230/353/246/254_/354/235/230/354/225/210/355/206/265/352/263/204_/354/264/235/352/264/204_.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/353/254/270/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/352/263/204/353/245/230/355/230/204/355/231/251.json +34 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/354/203/201/354/204/270/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/354/206/214/352/260/234/354/235/230/354/233/220_/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/354/213/254/354/202/254/354/240/225/353/263/264.json +38 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/354/240/221/354/210/230/353/252/251/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/354/262/230/353/246/254/355/230/204/355/231/251.json +35 -0
- assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/355/206/265/352/263/204.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//354/265/234/352/267/274_/355/227/214/354/236/254/352/262/260/354/240/225/352/263/274_/352/260/234/354/240/225/353/214/200/354/203/201_/353/262/225/353/245/240.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//354/265/234/354/213/240/354/231/270/352/265/255/354/236/205/353/262/225/354/240/225/353/263/264.json +26 -0
- assembly_api_client-0.1.0/tests/fixtures//355/206/240/353/241/240/355/232/214_/352/262/260/352/263/274/353/263/264/352/263/240/354/204/234.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//355/207/264/354/247/201_/352/263/265/354/247/201/354/236/220_/354/267/250/354/227/205/354/235/264/353/240/245_/352/263/265/354/213/234.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//355/212/271/353/263/204/354/234/204/354/233/220/355/232/214_/355/232/214/354/235/230/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//355/226/211/354/240/225/354/236/205/353/262/225_/353/266/204/354/204/235/354/227/260/352/265/254.json +28 -0
- assembly_api_client-0.1.0/tests/fixtures//355/230/204/354/225/210_/354/231/270/352/265/255/354/227/220/354/204/240.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//355/232/214/352/270/260/354/240/225/353/263/264.json +27 -0
- assembly_api_client-0.1.0/tests/fixtures//355/232/214/354/235/230/353/241/235_/353/214/200/353/263/204_/354/234/204/354/233/220/355/232/214_/353/252/251/353/241/235.json +30 -0
- assembly_api_client-0.1.0/tests/fixtures//355/232/214/354/235/230/353/241/235/353/263/204_/353/266/200/353/241/235_/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//355/232/214/354/235/230/353/241/235/353/263/204_/354/203/201/354/204/270/354/240/225/353/263/264.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//355/232/214/354/235/230/353/263/204_/354/225/210/352/261/264/353/252/251/353/241/235.json +6 -0
- assembly_api_client-0.1.0/tests/fixtures//355/232/214/354/235/230/353/263/204_/354/235/230/354/225/210/353/252/251/353/241/235.json +30 -0
- assembly_api_client-0.1.0/tests/test_all_services.py +82 -0
- assembly_api_client-0.1.0/tests/test_client.py +68 -0
- assembly_api_client-0.1.0/tests/test_integration_with_fixtures.py +123 -0
- assembly_api_client-0.1.0/tests/test_parser.py +208 -0
- assembly_api_client-0.1.0/uv.lock +716 -0
- assembly_api_client-0.1.0/verify_install.py +82 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- master
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
id-token: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
release:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
concurrency: release
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout code
|
|
20
|
+
uses: actions/checkout@v4
|
|
21
|
+
with:
|
|
22
|
+
fetch-depth: 0
|
|
23
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v5
|
|
27
|
+
with:
|
|
28
|
+
python-version: '3.11'
|
|
29
|
+
|
|
30
|
+
- name: Python Semantic Release
|
|
31
|
+
id: release
|
|
32
|
+
uses: python-semantic-release/python-semantic-release@v9.8.0
|
|
33
|
+
with:
|
|
34
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
35
|
+
|
|
36
|
+
- name: Publish package distributions to PyPI
|
|
37
|
+
if: steps.release.outputs.released == 'true'
|
|
38
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
39
|
+
with:
|
|
40
|
+
password: ${{ secrets.PYPI_TOKEN }}
|
|
41
|
+
|
|
42
|
+
- name: Publish package distributions to GitHub Releases
|
|
43
|
+
if: steps.release.outputs.released == 'true'
|
|
44
|
+
uses: python-semantic-release/upload-to-gh-release@main
|
|
45
|
+
with:
|
|
46
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
47
|
+
tag: ${{ steps.release.outputs.tag }}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: Update API Client
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# Run every day at midnight KST (15:00 UTC previous day)
|
|
6
|
+
- cron: '0 15 * * *'
|
|
7
|
+
workflow_dispatch: # Allow manual trigger
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
update-client:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v3
|
|
14
|
+
|
|
15
|
+
- name: Set up Python
|
|
16
|
+
uses: actions/setup-python@v4
|
|
17
|
+
with:
|
|
18
|
+
python-version: '3.11'
|
|
19
|
+
|
|
20
|
+
- name: Install Dependencies
|
|
21
|
+
run: |
|
|
22
|
+
pip install -e .
|
|
23
|
+
pip install httpx openpyxl pydantic tenacity typer rich platformdirs
|
|
24
|
+
|
|
25
|
+
- name: Run Update Script
|
|
26
|
+
env:
|
|
27
|
+
ASSEMBLY_API_KEY: ${{ secrets.ASSEMBLY_API_KEY }}
|
|
28
|
+
run: |
|
|
29
|
+
chmod +x scripts/update_client.sh
|
|
30
|
+
./scripts/update_client.sh
|
|
31
|
+
|
|
32
|
+
- name: Check for changes
|
|
33
|
+
id: git-check
|
|
34
|
+
run: |
|
|
35
|
+
git diff --exit-code || echo "changes=true" >> $GITHUB_OUTPUT
|
|
36
|
+
|
|
37
|
+
- name: Bump Version
|
|
38
|
+
if: steps.git-check.outputs.changes == 'true'
|
|
39
|
+
run: |
|
|
40
|
+
python scripts/bump_version.py
|
|
41
|
+
NEW_VERSION=$(grep -oP 'version = "\K[^"]+' pyproject.toml)
|
|
42
|
+
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
43
|
+
id: bump-version
|
|
44
|
+
|
|
45
|
+
- name: Create Pull Request
|
|
46
|
+
if: steps.git-check.outputs.changes == 'true'
|
|
47
|
+
uses: peter-evans/create-pull-request@v5
|
|
48
|
+
with:
|
|
49
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
50
|
+
commit-message: "feat: update api client specs to v${{ steps.bump-version.outputs.new_version }}"
|
|
51
|
+
title: "Update API Client Specs to v${{ steps.bump-version.outputs.new_version }}"
|
|
52
|
+
body: |
|
|
53
|
+
This PR updates the API client with the latest specifications from the National Assembly Open API.
|
|
54
|
+
|
|
55
|
+
- Synced latest master list
|
|
56
|
+
- Downloaded new/updated specs
|
|
57
|
+
- Regenerated Enums and Pydantic Models
|
|
58
|
+
- **Version bumped to ${{ steps.bump-version.outputs.new_version }}**
|
|
59
|
+
branch: update-api-specs
|
|
60
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## v0.1.0 (2025-11-29)
|
|
6
|
+
|
|
7
|
+
### Chore
|
|
8
|
+
|
|
9
|
+
* chore: trigger release workflow test ([`76e5a26`](https://github.com/StatPan/assembly-api-client/commit/76e5a26680d1912c2df8cb6b4c5df8af2a86b542))
|
|
10
|
+
|
|
11
|
+
* chore: remove useless plan file ([`d6c1c3d`](https://github.com/StatPan/assembly-api-client/commit/d6c1c3de7f41a938ebb77e73298e7e12a542741b))
|
|
12
|
+
|
|
13
|
+
* chore: Remove legacy AssemblyMCP folder and fix linting ([`301bfee`](https://github.com/StatPan/assembly-api-client/commit/301bfee8365245e485cd40dd6d1d046b260921d6))
|
|
14
|
+
|
|
15
|
+
* chore: Setup pre-commit and ruff, update docs and config ([`9588492`](https://github.com/StatPan/assembly-api-client/commit/9588492a4e232b9c43e7d6a11a67dfe174c67293))
|
|
16
|
+
|
|
17
|
+
### Feature
|
|
18
|
+
|
|
19
|
+
* feat: add automated version management with python-semantic-release (#2)
|
|
20
|
+
|
|
21
|
+
- Configure PSR v9 with Angular commit parser
|
|
22
|
+
- Add version tracking for __init__.py and pyproject.toml
|
|
23
|
+
- Create GitHub Actions release workflow
|
|
24
|
+
- Enable automated PyPI publishing
|
|
25
|
+
- Sync version to 0.1.1 across files ([`64f9820`](https://github.com/StatPan/assembly-api-client/commit/64f98202b7a68bb95ad61258e9457ad1706b25b1))
|
|
26
|
+
|
|
27
|
+
* feat: enhance spec download error diagnostics
|
|
28
|
+
|
|
29
|
+
- Detect HTML error pages vs Excel files
|
|
30
|
+
- Provide detailed troubleshooting messages
|
|
31
|
+
- Include content preview in error for debugging
|
|
32
|
+
- Add specific guidance for common failure cases ([`5e5279b`](https://github.com/StatPan/assembly-api-client/commit/5e5279b3b251c6c4a0934fbef4c6edead4610977))
|
|
33
|
+
|
|
34
|
+
* feat: add automatic version bumping to update workflow
|
|
35
|
+
|
|
36
|
+
- Created scripts/bump_version.py to increment patch version
|
|
37
|
+
- Updated workflow to bump version on spec updates
|
|
38
|
+
- Version bumped to 0.1.1
|
|
39
|
+
- Each spec update will now automatically get a new version number ([`e34027a`](https://github.com/StatPan/assembly-api-client/commit/e34027a43a2a64ec196ebd86317a2a17049e68b9))
|
|
40
|
+
|
|
41
|
+
* feat: add service metadata support
|
|
42
|
+
|
|
43
|
+
- Added load_service_metadata() to load comprehensive metadata from all_apis.json
|
|
44
|
+
- Extended AssemblyAPIClient with service_metadata attribute
|
|
45
|
+
- Provides description, category, organization info for each service
|
|
46
|
+
- Enables richer service information in downstream tools (assemblymcp) ([`4578cdf`](https://github.com/StatPan/assembly-api-client/commit/4578cdfdfbebbd11d3994ce362d603833c9f8eae))
|
|
47
|
+
|
|
48
|
+
* feat: Initial commit with robust client, tests, and automation ([`5cd90cc`](https://github.com/StatPan/assembly-api-client/commit/5cd90cc5af77593574ea544f7c44d5d2fba81115))
|
|
49
|
+
|
|
50
|
+
### Fix
|
|
51
|
+
|
|
52
|
+
* fix: add automatic infSeq fallback for spec download (#1)
|
|
53
|
+
|
|
54
|
+
- Implement automatic retry with infSeq=1 when infSeq=2 fails
|
|
55
|
+
- Add detailed logging for fallback attempts
|
|
56
|
+
- Add integration test for service OS46YD0012559515463
|
|
57
|
+
- Improve error messages with context from both attempts
|
|
58
|
+
- Remove unused main.py sample file
|
|
59
|
+
|
|
60
|
+
Some services (e.g., OS46YD0012559515463) only support infSeq=1
|
|
61
|
+
while most newer services require infSeq=2. This fix makes the
|
|
62
|
+
client robust to both cases without requiring manual intervention. ([`fa9aec9`](https://github.com/StatPan/assembly-api-client/commit/fa9aec96cbfc17c2146e127a900f220c4182bd14))
|
|
63
|
+
|
|
64
|
+
### Refactor
|
|
65
|
+
|
|
66
|
+
* refactor: Improve errors.py and remove unused legacy models.py ([`15f13d0`](https://github.com/StatPan/assembly-api-client/commit/15f13d014201ebee2a1c3faa1d796effac908d34))
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: assembly-api-client
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A robust Python client for the Korean National Assembly Open API
|
|
5
|
+
Project-URL: Homepage, https://github.com/statpan/assembly-api-client
|
|
6
|
+
Project-URL: Repository, https://github.com/statpan/assembly-api-client
|
|
7
|
+
Author-email: Statpan <statpan@example.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Keywords: api,assembly,client,korea,open-api
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Requires-Dist: httpx>=0.25.0
|
|
19
|
+
Requires-Dist: openpyxl>=3.1.0
|
|
20
|
+
Requires-Dist: platformdirs>=3.0.0
|
|
21
|
+
Requires-Dist: pydantic>=2.0.0
|
|
22
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
23
|
+
Requires-Dist: tenacity>=8.0.0
|
|
24
|
+
Requires-Dist: typer>=0.9.0
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pre-commit; extra == 'dev'
|
|
27
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
28
|
+
Requires-Dist: pytest-asyncio; extra == 'dev'
|
|
29
|
+
Requires-Dist: python-semantic-release>=9.0.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: rich; extra == 'dev'
|
|
31
|
+
Requires-Dist: ruff; extra == 'dev'
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# Assembly API Client
|
|
35
|
+
# Assembly API Client (국회 오픈 API 클라이언트)
|
|
36
|
+
|
|
37
|
+
대한민국 국회 오픈 API(Open API)를 위한 강력하고 유연한 비동기 Python 클라이언트입니다.
|
|
38
|
+
|
|
39
|
+
## 주요 기능 (Features)
|
|
40
|
+
|
|
41
|
+
- **동적 스펙 파싱 (Dynamic Spec Parsing)**: 엑셀 명세서를 자동으로 다운로드하고 파싱하여 API 엔드포인트를 동적으로 해결합니다.
|
|
42
|
+
- **타입 안정성 (Type Safety)**: Pydantic 모델을 사용하여 데이터 타입을 검증하고 자동 완성 기능을 제공합니다. API의 불규칙한 데이터 타입(문자열/숫자 혼용)에도 유연하게 대응합니다.
|
|
43
|
+
- **강력한 복원력 (Resilience)**: 내장된 재시도(Retry) 로직과 에러 핸들링으로 안정적인 데이터 수집이 가능합니다.
|
|
44
|
+
- **자동화된 업데이트 (Automated Updates)**: 매주 자동으로 최신 API 명세를 동기화하고 코드를 재생성하는 CI/CD 파이프라인이 포함되어 있습니다.
|
|
45
|
+
- **CLI 도구**: API 명세 동기화 및 검색을 위한 커맨드라인 도구를 제공합니다.
|
|
46
|
+
|
|
47
|
+
## 설치 (Installation)
|
|
48
|
+
|
|
49
|
+
이 프로젝트는 [uv](https://github.com/astral-sh/uv)를 사용하여 의존성을 관리하는 것을 권장합니다.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# uv 설치 (없는 경우)
|
|
53
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
54
|
+
|
|
55
|
+
# 가상환경 생성 및 패키지 설치
|
|
56
|
+
uv venv
|
|
57
|
+
source .venv/bin/activate
|
|
58
|
+
uv pip install assembly-api-client
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 사용법 (Usage)
|
|
62
|
+
|
|
63
|
+
### 1. API 키 설정 (API Key Configuration)
|
|
64
|
+
|
|
65
|
+
API 키는 두 가지 방식으로 설정할 수 있습니다.
|
|
66
|
+
|
|
67
|
+
**방법 A: 환경 변수 사용 (권장)**
|
|
68
|
+
`.env` 파일을 생성하거나 환경 변수를 설정합니다.
|
|
69
|
+
```bash
|
|
70
|
+
export ASSEMBLY_API_KEY="YOUR_API_KEY"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**방법 B: 클라이언트 직접 주입**
|
|
74
|
+
```python
|
|
75
|
+
client = AssemblyAPIClient(api_key="YOUR_API_KEY")
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 2. 기본 데이터 조회
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
import asyncio
|
|
82
|
+
from assembly_client.api import AssemblyAPIClient
|
|
83
|
+
from assembly_client.generated import Service
|
|
84
|
+
|
|
85
|
+
async def main():
|
|
86
|
+
# 환경 변수가 설정되어 있다면 api_key 생략 가능
|
|
87
|
+
async with AssemblyAPIClient() as client:
|
|
88
|
+
|
|
89
|
+
# 서비스 ID 또는 Enum을 사용하여 데이터 조회
|
|
90
|
+
# 예: 국회의원 발의법률안 조회
|
|
91
|
+
data = await client.get_data(Service.국회의원_발의법률안, params={"AGE": "21"})
|
|
92
|
+
|
|
93
|
+
for item in data:
|
|
94
|
+
print(f"법안명: {item.BILL_NAME}, 발의자: {item.PROPOSER}")
|
|
95
|
+
|
|
96
|
+
if __name__ == "__main__":
|
|
97
|
+
asyncio.run(main())
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 3. CLI 사용 (uv 기반)
|
|
101
|
+
|
|
102
|
+
API 명세 동기화:
|
|
103
|
+
```bash
|
|
104
|
+
uv run python -m assembly_client.cli sync
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
사용 가능한 API 목록 조회:
|
|
108
|
+
```bash
|
|
109
|
+
uv run python -m assembly_client.cli list
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## 유지보수 (Maintenance)
|
|
113
|
+
|
|
114
|
+
### API 명세 및 Fixture 업데이트
|
|
115
|
+
국회 API는 수시로 변경되거나 새로운 서비스가 추가될 수 있습니다.
|
|
116
|
+
새로운 API가 추가되면 `sync` 명령어로 명세를 업데이트하고, 테스트를 위한 Fixture도 새로 받아야 합니다.
|
|
117
|
+
|
|
118
|
+
이 프로젝트는 매일 자동으로 변경사항을 확인하도록 설정되어 있습니다. 수동으로 업데이트하려면:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# 1. 명세 동기화 및 코드 재생성
|
|
122
|
+
./scripts/update_client.sh
|
|
123
|
+
|
|
124
|
+
# 2. (필요시) 새로운 Fixture 생성
|
|
125
|
+
# 새로운 서비스가 추가되었다면 해당 서비스의 샘플 데이터를 받아 테스트에 추가해야 합니다.
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 개발 및 기여 (Development)
|
|
129
|
+
|
|
130
|
+
### 테스트 실행
|
|
131
|
+
```bash
|
|
132
|
+
pytest
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 코드 재생성 (수동)
|
|
136
|
+
```bash
|
|
137
|
+
./scripts/update_client.sh
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 라이선스 (License)
|
|
141
|
+
|
|
142
|
+
MIT License
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Assembly API Client
|
|
2
|
+
# Assembly API Client (국회 오픈 API 클라이언트)
|
|
3
|
+
|
|
4
|
+
대한민국 국회 오픈 API(Open API)를 위한 강력하고 유연한 비동기 Python 클라이언트입니다.
|
|
5
|
+
|
|
6
|
+
## 주요 기능 (Features)
|
|
7
|
+
|
|
8
|
+
- **동적 스펙 파싱 (Dynamic Spec Parsing)**: 엑셀 명세서를 자동으로 다운로드하고 파싱하여 API 엔드포인트를 동적으로 해결합니다.
|
|
9
|
+
- **타입 안정성 (Type Safety)**: Pydantic 모델을 사용하여 데이터 타입을 검증하고 자동 완성 기능을 제공합니다. API의 불규칙한 데이터 타입(문자열/숫자 혼용)에도 유연하게 대응합니다.
|
|
10
|
+
- **강력한 복원력 (Resilience)**: 내장된 재시도(Retry) 로직과 에러 핸들링으로 안정적인 데이터 수집이 가능합니다.
|
|
11
|
+
- **자동화된 업데이트 (Automated Updates)**: 매주 자동으로 최신 API 명세를 동기화하고 코드를 재생성하는 CI/CD 파이프라인이 포함되어 있습니다.
|
|
12
|
+
- **CLI 도구**: API 명세 동기화 및 검색을 위한 커맨드라인 도구를 제공합니다.
|
|
13
|
+
|
|
14
|
+
## 설치 (Installation)
|
|
15
|
+
|
|
16
|
+
이 프로젝트는 [uv](https://github.com/astral-sh/uv)를 사용하여 의존성을 관리하는 것을 권장합니다.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# uv 설치 (없는 경우)
|
|
20
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
21
|
+
|
|
22
|
+
# 가상환경 생성 및 패키지 설치
|
|
23
|
+
uv venv
|
|
24
|
+
source .venv/bin/activate
|
|
25
|
+
uv pip install assembly-api-client
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 사용법 (Usage)
|
|
29
|
+
|
|
30
|
+
### 1. API 키 설정 (API Key Configuration)
|
|
31
|
+
|
|
32
|
+
API 키는 두 가지 방식으로 설정할 수 있습니다.
|
|
33
|
+
|
|
34
|
+
**방법 A: 환경 변수 사용 (권장)**
|
|
35
|
+
`.env` 파일을 생성하거나 환경 변수를 설정합니다.
|
|
36
|
+
```bash
|
|
37
|
+
export ASSEMBLY_API_KEY="YOUR_API_KEY"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**방법 B: 클라이언트 직접 주입**
|
|
41
|
+
```python
|
|
42
|
+
client = AssemblyAPIClient(api_key="YOUR_API_KEY")
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 2. 기본 데이터 조회
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
import asyncio
|
|
49
|
+
from assembly_client.api import AssemblyAPIClient
|
|
50
|
+
from assembly_client.generated import Service
|
|
51
|
+
|
|
52
|
+
async def main():
|
|
53
|
+
# 환경 변수가 설정되어 있다면 api_key 생략 가능
|
|
54
|
+
async with AssemblyAPIClient() as client:
|
|
55
|
+
|
|
56
|
+
# 서비스 ID 또는 Enum을 사용하여 데이터 조회
|
|
57
|
+
# 예: 국회의원 발의법률안 조회
|
|
58
|
+
data = await client.get_data(Service.국회의원_발의법률안, params={"AGE": "21"})
|
|
59
|
+
|
|
60
|
+
for item in data:
|
|
61
|
+
print(f"법안명: {item.BILL_NAME}, 발의자: {item.PROPOSER}")
|
|
62
|
+
|
|
63
|
+
if __name__ == "__main__":
|
|
64
|
+
asyncio.run(main())
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 3. CLI 사용 (uv 기반)
|
|
68
|
+
|
|
69
|
+
API 명세 동기화:
|
|
70
|
+
```bash
|
|
71
|
+
uv run python -m assembly_client.cli sync
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
사용 가능한 API 목록 조회:
|
|
75
|
+
```bash
|
|
76
|
+
uv run python -m assembly_client.cli list
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 유지보수 (Maintenance)
|
|
80
|
+
|
|
81
|
+
### API 명세 및 Fixture 업데이트
|
|
82
|
+
국회 API는 수시로 변경되거나 새로운 서비스가 추가될 수 있습니다.
|
|
83
|
+
새로운 API가 추가되면 `sync` 명령어로 명세를 업데이트하고, 테스트를 위한 Fixture도 새로 받아야 합니다.
|
|
84
|
+
|
|
85
|
+
이 프로젝트는 매일 자동으로 변경사항을 확인하도록 설정되어 있습니다. 수동으로 업데이트하려면:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 1. 명세 동기화 및 코드 재생성
|
|
89
|
+
./scripts/update_client.sh
|
|
90
|
+
|
|
91
|
+
# 2. (필요시) 새로운 Fixture 생성
|
|
92
|
+
# 새로운 서비스가 추가되었다면 해당 서비스의 샘플 데이터를 받아 테스트에 추가해야 합니다.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 개발 및 기여 (Development)
|
|
96
|
+
|
|
97
|
+
### 테스트 실행
|
|
98
|
+
```bash
|
|
99
|
+
pytest
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 코드 재생성 (수동)
|
|
103
|
+
```bash
|
|
104
|
+
./scripts/update_client.sh
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 라이선스 (License)
|
|
108
|
+
|
|
109
|
+
MIT License
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "assembly-api-client"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "A robust Python client for the Korean National Assembly Open API"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Statpan", email = "statpan@example.com" },
|
|
14
|
+
]
|
|
15
|
+
keywords = ["korea", "assembly", "api", "client", "open-api"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.10",
|
|
22
|
+
"Programming Language :: Python :: 3.11",
|
|
23
|
+
"Programming Language :: Python :: 3.12",
|
|
24
|
+
]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"httpx>=0.25.0",
|
|
27
|
+
"openpyxl>=3.1.0",
|
|
28
|
+
"pydantic>=2.0.0",
|
|
29
|
+
"tenacity>=8.0.0",
|
|
30
|
+
"typer>=0.9.0",
|
|
31
|
+
"platformdirs>=3.0.0",
|
|
32
|
+
"python-dotenv>=1.0.0",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
Homepage = "https://github.com/statpan/assembly-api-client"
|
|
37
|
+
Repository = "https://github.com/statpan/assembly-api-client"
|
|
38
|
+
|
|
39
|
+
[project.scripts]
|
|
40
|
+
assembly-client = "assembly_client.cli:app"
|
|
41
|
+
|
|
42
|
+
[tool.hatch.build.targets.wheel]
|
|
43
|
+
packages = ["src/assembly_client"]
|
|
44
|
+
|
|
45
|
+
[tool.pytest.ini_options]
|
|
46
|
+
testpaths = ["tests"]
|
|
47
|
+
python_files = ["test_*.py"]
|
|
48
|
+
addopts = "-v"
|
|
49
|
+
|
|
50
|
+
[tool.ruff]
|
|
51
|
+
line-length = 120
|
|
52
|
+
target-version = "py310"
|
|
53
|
+
|
|
54
|
+
[tool.ruff.lint]
|
|
55
|
+
select = ["E", "F", "I", "B"]
|
|
56
|
+
ignore = []
|
|
57
|
+
|
|
58
|
+
[tool.ruff.lint.per-file-ignores]
|
|
59
|
+
"src/assembly_client/generated/*" = ["E501", "F403", "F405"]
|
|
60
|
+
"tests/*" = ["E501"]
|
|
61
|
+
|
|
62
|
+
[tool.ruff.format]
|
|
63
|
+
quote-style = "double"
|
|
64
|
+
indent-style = "space"
|
|
65
|
+
skip-magic-trailing-comma = false
|
|
66
|
+
line-ending = "auto"
|
|
67
|
+
|
|
68
|
+
[project.optional-dependencies]
|
|
69
|
+
dev = [
|
|
70
|
+
"pytest",
|
|
71
|
+
"pytest-asyncio",
|
|
72
|
+
"ruff",
|
|
73
|
+
"pre-commit",
|
|
74
|
+
"rich",
|
|
75
|
+
"python-semantic-release>=9.0.0",
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
[tool.semantic_release]
|
|
79
|
+
version_variables = [
|
|
80
|
+
"src/assembly_client/__init__.py:__version__",
|
|
81
|
+
"pyproject.toml:version"
|
|
82
|
+
]
|
|
83
|
+
commit_parser = "angular"
|
|
84
|
+
build_command = "pip install build && python -m build"
|
|
85
|
+
|
|
86
|
+
[tool.semantic_release.branches.master]
|
|
87
|
+
match = "(master|main)"
|
|
88
|
+
|
|
89
|
+
[tool.semantic_release.publish]
|
|
90
|
+
upload_to_vcs_release = true
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import logging
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from assembly_client.codegen.generator import generate_model_code, generate_params_model_code, generate_services_enum
|
|
6
|
+
from assembly_client.parser import SpecParser
|
|
7
|
+
|
|
8
|
+
logging.basicConfig(level=logging.INFO)
|
|
9
|
+
logger = logging.getLogger("codegen")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
async def main():
|
|
13
|
+
parser = SpecParser()
|
|
14
|
+
generated_dir = Path("src/assembly_client/generated")
|
|
15
|
+
generated_dir.mkdir(parents=True, exist_ok=True)
|
|
16
|
+
|
|
17
|
+
# 1. Generate Services Enum
|
|
18
|
+
logger.info("Generating services.py...")
|
|
19
|
+
services_code = generate_services_enum(parser.cache_dir)
|
|
20
|
+
with open(generated_dir / "services.py", "w", encoding="utf-8") as f:
|
|
21
|
+
f.write(services_code)
|
|
22
|
+
|
|
23
|
+
# 2. Generate Models
|
|
24
|
+
logger.info("Generating models.py...")
|
|
25
|
+
# We need to iterate over all cached specs.
|
|
26
|
+
# If cache is empty, we might need to sync first?
|
|
27
|
+
# For now, let's assume cache is populated or we iterate over what we have.
|
|
28
|
+
# Or better, iterate over the service map and parse each spec (which will download if needed).
|
|
29
|
+
# But downloading 180 specs might take time.
|
|
30
|
+
# Let's just do it for the ones currently in cache + maybe a few key ones for testing.
|
|
31
|
+
# User said "openapi 스펙으로 저장하든...". Ideally we generate for ALL.
|
|
32
|
+
# But for this session, let's generate for what we have in cache to prove concept.
|
|
33
|
+
|
|
34
|
+
# Actually, let's try to generate for ALL if possible, but maybe limit to avoid timeout?
|
|
35
|
+
# Let's just iterate over existing JSON files in cache for now.
|
|
36
|
+
|
|
37
|
+
models_code = [
|
|
38
|
+
"from pydantic import BaseModel, Field",
|
|
39
|
+
"from typing import Optional, Union",
|
|
40
|
+
"",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
json_files = list(parser.cache_dir.glob("*.json"))
|
|
44
|
+
logger.info(f"Found {len(json_files)} cached specs.")
|
|
45
|
+
|
|
46
|
+
for json_file in json_files:
|
|
47
|
+
if json_file.name == "all_apis.json":
|
|
48
|
+
continue
|
|
49
|
+
|
|
50
|
+
try:
|
|
51
|
+
# Load spec manually to avoid re-parsing logic if possible, or just use parser
|
|
52
|
+
# parser.parse_spec checks cache first.
|
|
53
|
+
service_id = json_file.stem
|
|
54
|
+
spec = await parser.parse_spec(service_id)
|
|
55
|
+
|
|
56
|
+
# Response Model
|
|
57
|
+
code = generate_model_code(spec)
|
|
58
|
+
models_code.append(code)
|
|
59
|
+
models_code.append("")
|
|
60
|
+
|
|
61
|
+
# Request Params Model
|
|
62
|
+
p_code = generate_params_model_code(spec)
|
|
63
|
+
models_code.append(p_code)
|
|
64
|
+
models_code.append("")
|
|
65
|
+
|
|
66
|
+
except Exception as e:
|
|
67
|
+
logger.error(f"Failed to generate model for {json_file}: {e}")
|
|
68
|
+
|
|
69
|
+
with open(generated_dir / "models.py", "w", encoding="utf-8") as f:
|
|
70
|
+
f.write("\n".join(models_code))
|
|
71
|
+
|
|
72
|
+
# Create __init__.py with MODEL_MAP
|
|
73
|
+
with open(generated_dir / "__init__.py", "w") as f:
|
|
74
|
+
f.write("from .services import Service\n")
|
|
75
|
+
f.write("from .models import *\n\n")
|
|
76
|
+
|
|
77
|
+
f.write("MODEL_MAP = {\n")
|
|
78
|
+
for json_file in json_files:
|
|
79
|
+
if json_file.name == "all_apis.json":
|
|
80
|
+
continue
|
|
81
|
+
service_id = json_file.stem
|
|
82
|
+
class_name = f"Model_{service_id}"
|
|
83
|
+
f.write(f" '{service_id}': {class_name},\n")
|
|
84
|
+
f.write("}\n\n")
|
|
85
|
+
|
|
86
|
+
f.write("PARAM_MAP = {\n")
|
|
87
|
+
for json_file in json_files:
|
|
88
|
+
if json_file.name == "all_apis.json":
|
|
89
|
+
continue
|
|
90
|
+
service_id = json_file.stem
|
|
91
|
+
class_name = f"Params_{service_id}"
|
|
92
|
+
f.write(f" '{service_id}': {class_name},\n")
|
|
93
|
+
f.write("}\n")
|
|
94
|
+
|
|
95
|
+
logger.info("Code generation complete.")
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
if __name__ == "__main__":
|
|
99
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Script to bump patch version in pyproject.toml"""
|
|
3
|
+
|
|
4
|
+
import re
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def bump_patch_version(pyproject_path: Path) -> str:
|
|
9
|
+
"""Bump patch version in pyproject.toml and return new version."""
|
|
10
|
+
content = pyproject_path.read_text()
|
|
11
|
+
|
|
12
|
+
# Find version line
|
|
13
|
+
pattern = r'version = "(\d+)\.(\d+)\.(\d+)"'
|
|
14
|
+
match = re.search(pattern, content)
|
|
15
|
+
|
|
16
|
+
if not match:
|
|
17
|
+
raise ValueError("Could not find version in pyproject.toml")
|
|
18
|
+
|
|
19
|
+
major, minor, patch = match.groups()
|
|
20
|
+
new_patch = int(patch) + 1
|
|
21
|
+
new_version = f"{major}.{minor}.{new_patch}"
|
|
22
|
+
|
|
23
|
+
# Replace version
|
|
24
|
+
new_content = re.sub(pattern, f'version = "{new_version}"', content)
|
|
25
|
+
pyproject_path.write_text(new_content)
|
|
26
|
+
|
|
27
|
+
return new_version
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
if __name__ == "__main__":
|
|
31
|
+
pyproject = Path("pyproject.toml")
|
|
32
|
+
new_ver = bump_patch_version(pyproject)
|
|
33
|
+
print(f"Bumped version to {new_ver}")
|