michraz
Israeli public tenders (מכרזים) in Python. One Tender object, whichever site it came from.
Sources today: Israel Land Authority land tenders and Beer Sheva municipal tenders.
Unofficial client. It can lag or miss tenders, and parsing can break when a source changes. Confirm deadlines on the publisher's page before you act. Not affiliated with the Israel Land Authority or any municipality.
Install
pip install michraz # Python 3.10+
pip install "michraz[pandas]" # optional, for DataFrames
Use it
from michraz import Michraz, to_csv
with Michraz() as m:
tenders = m.search(keyword="גינון", open_only=True)
for t in tenders:
print(f"{t.deadline:%Y-%m-%d} {t.title} {t.url}")
to_csv(tenders, "tenders.csv")
Results are sorted by deadline. Filter by source, closing_before and closing_after (dates or aware
datetimes) too. Each tender has an attribution string. Keep it when you republish the data.
Or from the terminal:
michraz search --open --source rmi
michraz search --keyword גינון --csv gardening.csv
A record that fails to parse is skipped and listed in m.last_errors. An unreachable source raises
SourceUnavailableError. More scripts are in examples.
Add a source
Write a class with name, description, attribution, errors and a fetch() that yields Tenders, then pass
it to Michraz([MySource()]).
Fields are documented in docs/model.md, and how each source was checked in docs/sources.md.
Polite by default
Honest User-Agent, one request per second per host, one-hour disk cache, at most two retries. Tune it with
Michraz(cache_dir=None, cache_ttl=..., min_interval=...).
Limitations
- RMI region, type, purpose and status are raw numeric codes in
tender.extra. No verified label table exists. - RMI tender details and documents are not fetched yet.
- Keyword search is a Unicode-normalized substring match. No stemming.
Development
make venv && make check
Tests run against recorded responses and never touch the network. See CONTRIBUTING.md.
MIT licensed. The data belongs to its publishers and carries their licenses.
Metadata
Release files for michraz 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| michraz-0.1.0.tar.gz | 50.1 kB | Without provenance | Details for michraz-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| michraz-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for michraz-0.1.0-py3-none-any.whl |
Total release size: 90.5 kB
Release files / michraz-0.1.0.tar.gz
| Download URL | michraz-0.1.0.tar.gz |
|---|---|
| Size | 50.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
85acd9b1af0f77fce33f0107c4602f78c235efac3fd960e9118bb07b8f189075
|
|
BLAKE2b-256 checksum How to use checksums |
7fe8b934f8a239f998b86b3a6cbe699721c959c8c4dcc3ed0000f60f7cbb0f0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / michraz-0.1.0-py3-none-any.whl
| Download URL | michraz-0.1.0-py3-none-any.whl |
|---|---|
| Size | 40.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
abb8e3ce7dbc5e921e65513719b30b425b1282ca2999ee658016e3bb992f500d
|
|
BLAKE2b-256 checksum How to use checksums |
f463cd2c436348dc9b08b57c80d66971bfbaa54dcb8259974053b0a24a81c02e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for michraz 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.