Skip to content
This repository has been archived by the owner on Aug 30, 2021. It is now read-only.

Releases: CAVaccineInventory/vaccine-feed-ingest-schema

v1.2.5

07 Jun 16:40
33fc3ac
Compare
Choose a tag to compare

Release new providers with brands from kroger, albertson's and others

v1.2.4

25 May 21:07
b853a3c
Compare
Choose a tag to compare

Minimum Python version dropped from 3.9 to 3.8. #32

v1.2.3

20 May 01:00
45b44cc
Compare
Choose a tag to compare

Add optional content_hash str field to ImportSourceLocation.

This field is used to round-trip an MD5 hash of the content of the import_json (sorted keys without the source field) to check if the source location has changed or not.

v1.2.2

04 May 04:28
b342937
Compare
Choose a tag to compare

Release more VaccineProvider enum values:

  1. LITTLE_CLINIC
  2. MARIANOS
  3. MARKET_STREET
  4. MEDICAP
  5. MEIJER
  6. OSCO
  7. PICK_N_SAVE
  8. PRICE_CHOPPER
  9. PUBLIX
  10. QFC
  11. RALEYS
  12. SAV_ON
  13. SHOP_RITE
  14. SMITHS
  15. SOUTH_EASTERN
  16. STOP_AND_SHOP
  17. THRIFTY
  18. TOM_THUMB
  19. WEIS
  20. WINN_DIXIE

v1.2.1

02 May 03:58
0a020a0
Compare
Choose a tag to compare
  • Add enum values for 30 providers to VaccineProvider

v1.2.0

01 May 19:43
b7c2cb6
Compare
Choose a tag to compare
  • Place length limits on string fields:
    • Note fields are limited to 2046 characters.
    • Enum fields are limited to 64 characters.
    • ID fields are limited to 128 characters.
    • All other fields are limited to 256 characters.
  • The phone number validation has been relaxed to accept any 9-digit-style phone numbers.

v1.1.0

30 Apr 22:17
0de9fc3
Compare
Choose a tag to compare

Loosen the Location id restrictions to allow UUID style ids with - in them.

v1.0.0

30 Apr 01:09
d1bd7cf
Compare
Choose a tag to compare

The 1.0.0 makes big changes to the schema to make it much easier to extract clean, useful data from our fetch/parse/normalize stages.

High-level goal

The downstream pipelines that consume our data have to adapt to the wide variety of scraped data formats. To help us along, we are going to impose more structure on the schema formats so that the consumers of our data have to deal with fewer edge cases. In most cases, these changes should also make it easier to write correct ingestion stages.

Specific changes

  • New pydantic enums to reduce ambiguity:
    • State for describing US states and territories, with USPS two-character abbreviations.
    • ContactType, with "general" and "booking" options.
    • DayOfWeek for the days Monday - Sunday and "public holidays".
    • VaccineType, with options for Pfizer/BioNTech, Moderna, Johnson & Johnson, and Oxford/AstraZeneca vaccines.
    • VaccineSupply, with options for vaccine stock status.
    • WheelchairAccessLevel, with various options for describing the wheelchair accessibility of the location.
    • VaccineProvider, for common parent organizations such as retail pharamcy chains.
    • LocationAuthority, for other authorities that identify locations, such as Google Places.
  • Format validation for certain fields:
    • Address:
      • zip must be a ZIP or ZIP+4 code, if present.
      • state must be a State, if present.
    • LatLng:
      • latitude must be between -90 and 90, inclusive, if present.
      • longitude must be between -180 and 180, inclusive, if present.
    • Contact:
      • contact_type must be from the ContactType enum, if present.
      • phone must be in the format of a 9 or 10 digit US phone number, if present.
      • website must be an HTTP/HTTPS URL, if present.
      • email must be formatted as an email address, if present.
    • OpenHour:
      • day must be a DayOfWeek.
      • open has been renamed opens for better parallelism with closes.
    • Vaccine:
      • vaccine must be a VaccineType.
      • supply_level must be from the VaccineSupply enum, if present.
    • Organization:
      • id should be from the VaccineProvider enum, if possible, but may be a string or empty. Using an enum value makes it easier for consumers to interpret the value.
      • id must use only lowercase alphanumeric characters and underscores.
    • Link:
      • authority should be a LocationAuthority/VaccineProvider, if possible, but may be a string or empty. Using an an enum value makes it easier to use these links to match locations.
      • authority must use only lowercase alphanumeric characters and underscores.
      • uri must be a URL, if present.
    • Source:
      • source must use only lowercase alphanumeric characters and underscores.
      • id must not use a space or colon. These must be replaced with another character, such as a dash.
      • fetched_from-uri must be a URL, if present.
    • Location:
      • id must consist of only lowercase alphanumeric characters and underscores, with precisely one colon. The colon should separate the part of the ID that reflects the data source and the part of the ID that reflects the specific location.
  • Additional requirements:
    • Each Contact should have precisely one field (phone, website, email, other). Do not coalesce several of these into a single method.
    • The opens value should be before or the same as the closes value on an OpenDate.
    • The opens value should be before or the same as the closes value on an OpenHour.
    • The id of a Location must be prefixed with the source name (specified in Location.source.source).

v0.2.1

28 Apr 19:34
b48e3f4
Compare
Choose a tag to compare
  • Split schema into location and load. Users should now import this package using either

    from vaccine_feed_ingest_schema import location

    or

    from vaccine_feed_ingest_schema import load

    The current method of importing (schema includes both location and load) has been maintained for compatibility, but a deprecation warning has been added. In a future major release, schema will be removed.

  • Configure pydantic to:

    • strip whitespace from string values
    • error if undefined attributes are added to a class
    • error on assignment if the value does not match the desired type
    • store enums as strings - this will enable easier migration to future enum-enforced values
  • Set all attributes on Address to be optional (previously, only street2 was optional).

Note: v0.2.0 was skipped.

v0.2.0

28 Apr 19:28
d8a3bce
Compare
Choose a tag to compare

This release was not published. See v0.2.1 instead