Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

A library of classes for HAR data using pyserde.

The library is focused on providing a complete F-Algebra for HAR data and associated morphisms but also contains canonical types for basic usages.

F-Algebra classes

There is one generic-ish class for every HAR type and are prefixed with F. All nested HAR data has been replaced with type parameters. Some types have no nested HAR data and so have no generic parameters but are included for completeness. All types can be imported from harf_serde.harf or directly from harf_serde.

There is one edge case for post data. Since some of the parameters defined in the spec are mutually exclusive there are two classes for post data. PostDataParamF for ParamF based post data, and PostDataTextF for text based post data. There is a union type PostDataF combining the two for type hints but it cannot be constructed.

All of these types are Functory, by providing a nmap function that takes a function for each of the generic parameters. For example, see the ResponseF class below.

class ResponseF(Generic[A, B, C]):
   ...
   statusText: str
   httpVersion: str
   cookies: List[A]
   headers: List[B]
   content: C
   ...

   def nmap(
       self: "ResponseF[A, B, C]",
       f: Func[A, W],
       g: Func[B, X],
       h: Func[C, Y],
   ) -> "ResponseF[W, X, Y]":
       return replace(
           self,  # type: ignore[arg-type]
           cookies=list(map(f, self.cookies)),
           headers=list(map(g, self.headers)),
           content=h(self.content),
       )

Morphisms

Currently there are just 2 helper morphisms. harf_cata is a general catamorphsim, and harf which helps you build an algebra for harf_cata by taking explicit functions for each HAR type. All functions can be imported from harf_serde.morphism or directly from harf_serde.

For example, if you wanted to count the number of times the string "key" is in headers you could do the following

harf(
    default=0,
    header=lambda h: h.count("key"),
    request=lambda r: sum(r.headers),
    response=lambda r: sum(r.headers),
    entry=lambda e: e.request + e.response,
    log=lambda l: sum(l.entries),
)(har_data)

Canonical/Basic types

For simple usages there are also type aliases for the canonical HAR structure. I.E. Response = ResponseF[Cookie, Header, Content]. All types can be imported from harf_serde.har or directly from harf_serde.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

harf-serde-1.2b4.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

harf_serde-1.2b4-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file harf-serde-1.2b4.tar.gz.

File metadata

  • Download URL: harf-serde-1.2b4.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for harf-serde-1.2b4.tar.gz
Algorithm Hash digest
SHA256 3442aeb8da042b6a194fee2cc6ed668abca397c43ba9cd94f157893cc7ea25fb
MD5 2631a9ec08b822c382f13dd2aa5ab19e
BLAKE2b-256 90082cb090530e167c6e604ce992517944bf1f58f2cec97be85d02d1dc22cf8e

See more details on using hashes here.

File details

Details for the file harf_serde-1.2b4-py3-none-any.whl.

File metadata

  • Download URL: harf_serde-1.2b4-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for harf_serde-1.2b4-py3-none-any.whl
Algorithm Hash digest
SHA256 c3eebe624ba9f7f1074ffbfc8c4bfd7421ed0ba4e65356290703653acaafa8be
MD5 83fe0c5c3ce53b9b286e80f37fa8059f
BLAKE2b-256 c35c4a74adb55b4f7b03a486a11ab8319627f9364f10c553d2eeb6cd42e216b0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2b4 This release

2 files

1.2a1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page