Skip to content

makegov/procurement-tools

Repository files navigation

procurement-tools

PyPI version

A handy collection of python utilities and tools to navigate federal contracting.

Features

  • UEI validation
  • Get a URL for an entity from USASpending
  • Get recent award data for an entity from USASpending
  • Lookup a FAR provision by citation
  • Get entity information from the SAM entity
  • Access innovations from the Periodic Table of Acquisition Innovations

Usage

For full documentation, head to the docs.

from procurement_tools import FAR, UEI, USASpending, PeriodicTable
print(UEI.is_valid("J7M9HPTGJ1S9"))
# True

print(USASpending.get_usaspending_URL("J7M9HPTGJ1S9"))
# 'https://www.usaspending.gov/recipient/bf1220c1-2373-042a-e8e1-33d5a29639d0-P/latest'

print(FAR.get_section("17.502-2"))
# Returns a pydantic model with the title, section number, url, and text of the section

print(PeriodicTable.get_random_innovation())
# Returns a dict with an innovation from the FAI Periodic Table of Acquisition Innovations

Additionally, we have the beginning of a SAM API client:

from procurement_tools import SAM
res = SAM.get_entity({"ueiSAM":"XRVFU3YRA2U5"})
print(res)
# Returns a pydantic model with the latest SAM data for a given Entity

CLI Usage

Out of the box, there is a simple CLI, called fargo. You can use it to do things like:

fargo sam entity [UEI]
# Dumps a json of an entity's information

fargo sam opportunities --q "machine"
# Dumps a json of active opportunities that match the keyword "machine"

fargo usaspending [UEI] --awards
# Dumps a json of an entity's 10 most recent awards (in the last 90 days)

Check out the docs for all of the CLI options

Installation

pip install procurement-tools

The SAM API client requires that the local environment variable SAM_API_KEY be set. See the SAM API Docs for information on obtaining an API key.

License

Apache 2.0