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 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 affixed with F. All nested HAR types have been replaced with type parameters. Some types have no nested HAR types and so have no generic parameters but are included for completeness.

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.

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]

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.2b1.tar.gz (6.0 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.2b1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: harf-serde-1.2b1.tar.gz
  • Upload date:
  • Size: 6.0 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.2b1.tar.gz
Algorithm Hash digest
SHA256 b56bbba42259d28071fa2d7aabf1f67b832faf2d69f7b07c77a47d24c1d80cdd
MD5 c5474b420f0ca3b87efa31c33bcc39c6
BLAKE2b-256 4e06ecca334f5d44b02e1f897121279167830cccf72e3e1f84f35bbe8fd313c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: harf_serde-1.2b1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.2b1-py3-none-any.whl
Algorithm Hash digest
SHA256 52c38e41906e3ed7ff4a751571941fd0033f2633ebf8276b5d414091a8685a5a
MD5 140ab654a8132da3660c1320d0975842
BLAKE2b-256 793544a36b1dc952ab44d7d4fcc80f58e7fb09035b384355b6b7d3fa16d4cd29

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2b1 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