tango-python 1.15.0__py3-none-any.whl → 1.17.0__py3-none-any.whl
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.
- tango/__init__.py +1 -1
- tango/client.py +7 -0
- tango/models.py +6 -1
- tango/shapes/explicit_schemas.py +2 -0
- {tango_python-1.15.0.dist-info → tango_python-1.17.0.dist-info}/METADATA +1 -1
- {tango_python-1.15.0.dist-info → tango_python-1.17.0.dist-info}/RECORD +9 -9
- {tango_python-1.15.0.dist-info → tango_python-1.17.0.dist-info}/WHEEL +0 -0
- {tango_python-1.15.0.dist-info → tango_python-1.17.0.dist-info}/entry_points.txt +0 -0
- {tango_python-1.15.0.dist-info → tango_python-1.17.0.dist-info}/licenses/LICENSE +0 -0
tango/__init__.py
CHANGED
tango/client.py
CHANGED
|
@@ -632,6 +632,7 @@ class TangoClient:
|
|
|
632
632
|
award_date_lte: str | None = None,
|
|
633
633
|
award_type: str | None = None,
|
|
634
634
|
awarding_agency: str | None = None,
|
|
635
|
+
commercial_item_acquisition_procedures: str | None = None,
|
|
635
636
|
expiring_gte: str | None = None,
|
|
636
637
|
expiring_lte: str | None = None,
|
|
637
638
|
fiscal_year: int | None = None,
|
|
@@ -674,6 +675,7 @@ class TangoClient:
|
|
|
674
675
|
award_date_lte: Award date <= (YYYY-MM-DD)
|
|
675
676
|
award_type: Award type code
|
|
676
677
|
awarding_agency: Awarding agency code (e.g., "4700" for GSA)
|
|
678
|
+
commercial_item_acquisition_procedures: FPDS commercial item acquisition procedures code, case-insensitive: "A" (commercial products/services), "B" (products or services pursuant to FAR 12.102(f)), "C" (services pursuant to FAR 12.102(g)), "D" (commercial procedures not used) or "E" (DoD Section 803 Commercial Solutions Opening). Pipe-separate codes for OR, e.g. "A|E"; an unknown code matches nothing.
|
|
677
679
|
expiring_gte: Expiring on or after date
|
|
678
680
|
expiring_lte: Expiring on or before date
|
|
679
681
|
fiscal_year: Fiscal year (exact match)
|
|
@@ -751,6 +753,7 @@ class TangoClient:
|
|
|
751
753
|
("award_date_lte", award_date_lte),
|
|
752
754
|
("award_type", award_type),
|
|
753
755
|
("awarding_agency", awarding_agency),
|
|
756
|
+
("commercial_item_acquisition_procedures", commercial_item_acquisition_procedures),
|
|
754
757
|
("expiring_gte", expiring_gte),
|
|
755
758
|
("expiring_lte", expiring_lte),
|
|
756
759
|
("fiscal_year", fiscal_year),
|
|
@@ -915,6 +918,7 @@ class TangoClient:
|
|
|
915
918
|
award_date_gte: str | None = None,
|
|
916
919
|
award_date_lte: str | None = None,
|
|
917
920
|
awarding_agency: str | None = None,
|
|
921
|
+
commercial_item_acquisition_procedures: str | None = None,
|
|
918
922
|
expiring_gte: str | None = None,
|
|
919
923
|
expiring_lte: str | None = None,
|
|
920
924
|
fiscal_year: int | None = None,
|
|
@@ -941,6 +945,8 @@ class TangoClient:
|
|
|
941
945
|
|
|
942
946
|
This mirrors `/api/idvs/` and supports the same filter parameters as the API,
|
|
943
947
|
plus shaping via `shape`.
|
|
948
|
+
|
|
949
|
+
`commercial_item_acquisition_procedures` takes an FPDS commercial item acquisition procedures code `A`–`E` (case-insensitive; `E` is DoD Section 803 Commercial Solutions Opening), pipe-separated for OR, e.g. `"A|E"`; an unknown code matches nothing.
|
|
944
950
|
"""
|
|
945
951
|
params: dict[str, Any] = {"limit": min(limit, 100)}
|
|
946
952
|
if cursor:
|
|
@@ -962,6 +968,7 @@ class TangoClient:
|
|
|
962
968
|
("award_date_gte", award_date_gte),
|
|
963
969
|
("award_date_lte", award_date_lte),
|
|
964
970
|
("awarding_agency", awarding_agency),
|
|
971
|
+
("commercial_item_acquisition_procedures", commercial_item_acquisition_procedures),
|
|
965
972
|
("expiring_gte", expiring_gte),
|
|
966
973
|
("expiring_lte", expiring_lte),
|
|
967
974
|
("fiscal_year", fiscal_year),
|
tango/models.py
CHANGED
|
@@ -1365,6 +1365,10 @@ class EbuyAttachment:
|
|
|
1365
1365
|
"""Schema definition for one entry in an eBuy request's ``attachments`` (not used for instances).
|
|
1366
1366
|
|
|
1367
1367
|
``is_link=True`` means the entry is an outbound URL in ``doc_path`` with no stored document behind it, so ``get_ebuy_attachment_url()`` raises ``TangoAttachmentLinkError`` for it.
|
|
1368
|
+
|
|
1369
|
+
``extracted_text`` (Tango API 5.9.1) is the text extracted from the attachment's document.
|
|
1370
|
+
It must be named, e.g. ``attachments(doc_seq_num,doc_name,extracted_text)``, because neither the default response nor ``attachments(*)`` includes it.
|
|
1371
|
+
An attachment with no text (a link, an empty scan, or a document not yet extracted) omits the key from the API response rather than returning null; the SDK's shaped result reads that as ``None``.
|
|
1368
1372
|
"""
|
|
1369
1373
|
|
|
1370
1374
|
doc_seq_num: int | None = None
|
|
@@ -1373,6 +1377,7 @@ class EbuyAttachment:
|
|
|
1373
1377
|
doc_path: str | None = None
|
|
1374
1378
|
is_link: bool | None = None
|
|
1375
1379
|
doc_session_date: datetime | None = None
|
|
1380
|
+
extracted_text: str | None = None
|
|
1376
1381
|
|
|
1377
1382
|
|
|
1378
1383
|
class EbuyRequest:
|
|
@@ -1660,7 +1665,7 @@ class ShapeConfig:
|
|
|
1660
1665
|
"link_count,last_seen"
|
|
1661
1666
|
)
|
|
1662
1667
|
|
|
1663
|
-
# Default for get_ebuy_request(). Mirrors the API's own retrieve default; the attachment fields are named rather than `attachments(*)` so their dates parse.
|
|
1668
|
+
# Default for get_ebuy_request(). Mirrors the API's own retrieve default; the attachment fields are named rather than `attachments(*)` so their dates parse. `extracted_text` is left out because document bodies are large and the API serves them only when named.
|
|
1664
1669
|
EBUY_REQUESTS_COMPREHENSIVE: Final = (
|
|
1665
1670
|
"rfq_id,request_type,title,description,schedule,sin,status,buyer_name,"
|
|
1666
1671
|
"buyer_agency,buyer_agency_code,buyer_email,buyer_user_id,reference_number,"
|
tango/shapes/explicit_schemas.py
CHANGED
|
@@ -886,6 +886,8 @@ EBUY_ATTACHMENT_SCHEMA: dict[str, FieldSchema] = {
|
|
|
886
886
|
"doc_session_date": FieldSchema(
|
|
887
887
|
name="doc_session_date", type=datetime, is_optional=True, is_list=False
|
|
888
888
|
),
|
|
889
|
+
# Only when named in the shape; the API omits the key for an attachment with no text.
|
|
890
|
+
"extracted_text": FieldSchema(name="extracted_text", type=str, is_optional=True, is_list=False),
|
|
889
891
|
}
|
|
890
892
|
|
|
891
893
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
tango/__init__.py,sha256=
|
|
2
|
-
tango/client.py,sha256
|
|
1
|
+
tango/__init__.py,sha256=hyJnoG92kgW1ylC060yUS0hjSTlNfG55AiwfmdnCPdA,2739
|
|
2
|
+
tango/client.py,sha256=-T4k3sX1EgDF8Bya77lvwM8yqL72nPABYrd_tgtIF1g,244423
|
|
3
3
|
tango/exceptions.py,sha256=oPiLCccBoWLK5SjHkzP-oI6mUD9twEeKSvEuLV5h01I,4224
|
|
4
|
-
tango/models.py,sha256=
|
|
4
|
+
tango/models.py,sha256=2kyX6ogMWVNfsBbh1ah5hUgWFH1EQuArwUCHzrHRY4Y,72598
|
|
5
5
|
tango/shapes/__init__.py,sha256=7ea1WU74jp4znhNw-gXruag6m6eyPZtbVgbDFmFUWro,1072
|
|
6
|
-
tango/shapes/explicit_schemas.py,sha256=
|
|
6
|
+
tango/shapes/explicit_schemas.py,sha256=RCsUOVKe89WYPORVSAPKWX6u3If1DdI_7a94VTAbzrI,84525
|
|
7
7
|
tango/shapes/factory.py,sha256=uDPhnp6VVzrLBKodxteZy5AcU43juEv-qKVRWth51j0,31550
|
|
8
8
|
tango/shapes/generated_overlay.py,sha256=7UwqTeqNW4NIuwsQlKVZgBlH2biEVBdEZ4z2IwiS1k4,141244
|
|
9
9
|
tango/shapes/generator.py,sha256=xzakpwTwqTMUr89I06hp54-FIYZziviWHk2Glscg-LM,22775
|
|
@@ -16,8 +16,8 @@ tango/webhooks/cli.py,sha256=f_vQbJ2AeSQjKnQo7MxHFyUB2SAKcgHYmGQULS0isqQ,13858
|
|
|
16
16
|
tango/webhooks/receiver.py,sha256=5yhsVhlLyoxmOCGvmbynWAIlDB2OaCPVf1H4GA1SxmU,9279
|
|
17
17
|
tango/webhooks/signing.py,sha256=92Ee-0B6PR7ZkvY3Np3gzl88-mtfKkh-I7lxqCe2lGw,2374
|
|
18
18
|
tango/webhooks/simulate.py,sha256=g2Osa0FYU5mJuon07T2aUCtmkUoTEzsY261tlp76fF0,3165
|
|
19
|
-
tango_python-1.
|
|
20
|
-
tango_python-1.
|
|
21
|
-
tango_python-1.
|
|
22
|
-
tango_python-1.
|
|
23
|
-
tango_python-1.
|
|
19
|
+
tango_python-1.17.0.dist-info/METADATA,sha256=rZoauk0_jIBk6yraVOv_-FgWVcsRPDCFG2USzRdHYEo,22824
|
|
20
|
+
tango_python-1.17.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
21
|
+
tango_python-1.17.0.dist-info/entry_points.txt,sha256=kGLUbglUjuaAqEFvOZ1QuSW0vWb6VeSpCIFKaOFkKoQ,50
|
|
22
|
+
tango_python-1.17.0.dist-info/licenses/LICENSE,sha256=j2kYVHMwTkoGn3ZNScnrdIueG0k2XzB_LCPFoyBc2wk,1064
|
|
23
|
+
tango_python-1.17.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|