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.
Files changed (305) hide show
  1. assembly_api_client-0.1.0/.github/workflows/release.yml +47 -0
  2. assembly_api_client-0.1.0/.github/workflows/update_client.yml +60 -0
  3. assembly_api_client-0.1.0/.gitignore +12 -0
  4. assembly_api_client-0.1.0/.pre-commit-config.yaml +7 -0
  5. assembly_api_client-0.1.0/.python-version +1 -0
  6. assembly_api_client-0.1.0/CHANGELOG.md +66 -0
  7. assembly_api_client-0.1.0/PKG-INFO +142 -0
  8. assembly_api_client-0.1.0/README.md +109 -0
  9. assembly_api_client-0.1.0/pyproject.toml +90 -0
  10. assembly_api_client-0.1.0/run_codegen.py +99 -0
  11. assembly_api_client-0.1.0/scripts/bump_version.py +33 -0
  12. assembly_api_client-0.1.0/scripts/generate_fixtures.py +140 -0
  13. assembly_api_client-0.1.0/scripts/update_client.sh +22 -0
  14. assembly_api_client-0.1.0/src/assembly_client/__init__.py +5 -0
  15. assembly_api_client-0.1.0/src/assembly_client/api.py +265 -0
  16. assembly_api_client-0.1.0/src/assembly_client/cli.py +115 -0
  17. assembly_api_client-0.1.0/src/assembly_client/codegen/generator.py +120 -0
  18. assembly_api_client-0.1.0/src/assembly_client/errors.py +37 -0
  19. assembly_api_client-0.1.0/src/assembly_client/generated/__init__.py +555 -0
  20. assembly_api_client-0.1.0/src/assembly_client/generated/models.py +5860 -0
  21. assembly_api_client-0.1.0/src/assembly_client/generated/services.py +283 -0
  22. assembly_api_client-0.1.0/src/assembly_client/parser.py +466 -0
  23. assembly_api_client-0.1.0/src/assembly_client/sync.py +171 -0
  24. assembly_api_client-0.1.0/tests/fixtures/NABO_Focus.json +27 -0
  25. assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/260/354/202/260_/353/266/204/354/204/235.json +27 -0
  26. 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
  27. 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
  28. 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
  29. assembly_api_client-0.1.0/tests/fixtures/NABO_/352/262/275/354/240/234/354/240/204/353/247/235.json +27 -0
  30. 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
  31. 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
  32. 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
  33. 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
  34. assembly_api_client-0.1.0/tests/fixtures/NABO_/354/230/210/354/202/260_/353/266/204/354/204/235.json +27 -0
  35. 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
  36. 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
  37. 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
  38. assembly_api_client-0.1.0/tests/fixtures/NABO_/354/241/260/354/204/270/354/210/230/354/262/251.json +27 -0
  39. 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
  40. assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/352/270/260/355/203/200.json +27 -0
  41. 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
  42. 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
  43. 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
  44. assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/354/235/270/353/254/274.json +27 -0
  45. assembly_api_client-0.1.0/tests/fixtures/NATV_/353/211/264/354/212/244_/354/240/225/353/213/271.json +6 -0
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. assembly_api_client-0.1.0/tests/fixtures/bills.json +141 -0
  57. assembly_api_client-0.1.0/tests/fixtures/members.json +146 -0
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. 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
  161. 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
  162. 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
  163. 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
  164. 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
  165. 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
  166. 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
  167. 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
  168. 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
  169. 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
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. 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
  176. 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
  177. 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
  178. assembly_api_client-0.1.0/tests/fixtures//353/263/264/353/217/204/354/236/220/353/243/214.json +29 -0
  179. 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
  180. 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
  181. 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
  182. 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
  183. 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
  184. 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
  185. 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
  186. 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
  187. 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
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. 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
  197. 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
  198. 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
  199. 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
  200. 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
  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. 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
  221. assembly_api_client-0.1.0/tests/fixtures//354/230/210/354/202/260/354/266/230/354/266/224.json +27 -0
  222. 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
  223. 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
  224. 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
  225. 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
  226. 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
  227. 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
  228. 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
  229. 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
  230. 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
  231. 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
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. 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
  241. 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
  242. 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
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. 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
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. 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
  277. 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
  278. 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
  279. 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
  280. 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
  281. 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
  282. 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
  283. 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
  284. 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
  285. 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
  286. assembly_api_client-0.1.0/tests/fixtures//354/262/255/354/233/220_/355/206/265/352/263/204.json +6 -0
  287. 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
  288. 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
  289. 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
  290. 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
  291. 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
  292. 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
  293. 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
  294. assembly_api_client-0.1.0/tests/fixtures//355/232/214/352/270/260/354/240/225/353/263/264.json +27 -0
  295. 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
  296. 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
  297. 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
  298. 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
  299. 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
  300. assembly_api_client-0.1.0/tests/test_all_services.py +82 -0
  301. assembly_api_client-0.1.0/tests/test_client.py +68 -0
  302. assembly_api_client-0.1.0/tests/test_integration_with_fixtures.py +123 -0
  303. assembly_api_client-0.1.0/tests/test_parser.py +208 -0
  304. assembly_api_client-0.1.0/uv.lock +716 -0
  305. 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,12 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+ *_output.txt
12
+ .env
@@ -0,0 +1,7 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.1.6
4
+ hooks:
5
+ - id: ruff
6
+ args: [ --fix ]
7
+ - id: ruff-format
@@ -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}")