Special Notes: Parameter Conversion and Helper Utilities (edgar-sec)#

The Edgar-SEC package uses automatic parameter normalization, CIK resolution helpers, and async-safe conversion tools for consistent and clean API usage.

This page summarizes key internal utilities and design patterns.

Parameter Conversion in Edgar-SEC#

Edgar-SEC automatically handles conversions for common parameter types.

Supported Conversions#

  • datetime.datetimeYYYY-MM-DD:

    from datetime import datetime
    edgar.get_submissions(
        cik="0000320193",
        start=datetime(2021, 1, 1)
    )
    
  • str → padded CIK:

    Automatically zero-fills short CIKs to 10 digits via internal validation.

    edgar.get_submissions(cik="320193")  # Becomes "0000320193"
    
  • str → CY####Q# formatted period:

    edgar.EdgarHelpers.string_cy_conversion("2022-09-30")  # -> "CY2022Q3"
    
  • datetime → CY####Q# formatted period:

    from datetime import datetime
    edgar.EdgarHelpers.datetime_cy_conversion(datetime(2022, 3, 31))  # -> "CY2022Q1"
    

Helper Methods#

Conversion and validation utilities are accessible via:

  • edgar_sec.EdgarHelpers.get_cik

  • edgar_sec.EdgarHelpers.get_universe

  • edgar_sec.EdgarHelpers.cik_validation

  • edgar_sec.EdgarHelpers.string_cy_conversion

  • edgar_sec.EdgarHelpers.datetime_cy_conversion

Each has an async equivalent as well (e.g. get_cik_async, datetime_cy_conversion_async).

CIK Search and Universe Fetching#

Examples:

  • Search for a company CIK by name or ticker:

    edgar.EdgarHelpers.get_cik(ticker="AAPL")
    edgar.EdgarHelpers.get_cik(search_text="Tesla")
    
  • Fetch full company list:

    universe = edgar.EdgarHelpers.get_universe()
    print(universe[0].name, universe[0].cik)
    

Validating CIK Format#

CIKs are zero-padded to 10-digit strings automatically.

edgar.EdgarHelpers.cik_validation("320193")  # -> "0000320193"

Used internally by all client methods.

Calendar Period Utilities#

For converting reporting periods into SEC-style CY####Q# format:

from edgar_sec import EdgarHelpers
EdgarHelpers.string_cy_conversion("2023-06-30")     # -> "CY2023Q2"
EdgarHelpers.datetime_cy_conversion(datetime(2023, 6, 30))  # -> "CY2023Q2"

Validation:

EdgarHelpers.string_cy_validation("CY2022Q3")  # -> True
EdgarHelpers.string_cy_validation("2022Q3")    # -> False

Async Conversion Utilities#

All conversion methods are async-safe using asyncio.to_thread(…).

await edgar.EdgarHelpers.string_cy_conversion_async("2023-06-30")
await edgar.EdgarHelpers.get_cik_async(ticker="GOOG")