kvk-connect 0.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. kvk_connect/__init__.py +11 -0
  2. kvk_connect/api/__init__.py +4 -0
  3. kvk_connect/api/client.py +183 -0
  4. kvk_connect/api/endpoints.py +24 -0
  5. kvk_connect/api/session.py +34 -0
  6. kvk_connect/cli/main.py +26 -0
  7. kvk_connect/db/__init__.py +0 -0
  8. kvk_connect/db/basisprofiel_reader.py +67 -0
  9. kvk_connect/db/basisprofiel_writer.py +73 -0
  10. kvk_connect/db/init.py +25 -0
  11. kvk_connect/db/kvkvestigingen_reader.py +41 -0
  12. kvk_connect/db/kvkvestigingen_writer.py +73 -0
  13. kvk_connect/db/signaal_reader.py +23 -0
  14. kvk_connect/db/signaal_writer.py +73 -0
  15. kvk_connect/db/vestigingenprofiel_reader.py +66 -0
  16. kvk_connect/db/vestigingsprofiel_writer.py +92 -0
  17. kvk_connect/logging_config.py +27 -0
  18. kvk_connect/mappers/__init__.py +1 -0
  19. kvk_connect/mappers/kvk_record_mapper.py +100 -0
  20. kvk_connect/mappers/map_mutatie_abonnement_api_to_mutatieabonnement.py +11 -0
  21. kvk_connect/mappers/map_vestigingen_api_to_vestigingsnummers.py +14 -0
  22. kvk_connect/mappers/map_vestigingsprofiel_api_to_vestigingsprofiel_domain.py +41 -0
  23. kvk_connect/models/__init__.py +0 -0
  24. kvk_connect/models/api/__init__.py +0 -0
  25. kvk_connect/models/api/abonnementen_api.py +42 -0
  26. kvk_connect/models/api/basisprofiel_api.py +233 -0
  27. kvk_connect/models/api/mutatie_abonnementen_api.py +40 -0
  28. kvk_connect/models/api/mutatiesignalen_api.py +44 -0
  29. kvk_connect/models/api/vestigingen_api.py +73 -0
  30. kvk_connect/models/api/vestigingsprofiel_api.py +71 -0
  31. kvk_connect/models/domain/__init__.py +6 -0
  32. kvk_connect/models/domain/basisprofiel.py +65 -0
  33. kvk_connect/models/domain/kvkvestigingsnummersdomain.py +28 -0
  34. kvk_connect/models/domain/mutatie_abonnement.py +20 -0
  35. kvk_connect/models/domain/vestigingsadresdomain.py +62 -0
  36. kvk_connect/models/domain/vestigingsadressendomain.py +48 -0
  37. kvk_connect/models/domain/vestigingsprofiel_domain.py +58 -0
  38. kvk_connect/models/orm/base.py +5 -0
  39. kvk_connect/models/orm/basisprofiel_orm.py +52 -0
  40. kvk_connect/models/orm/kvkvestigingen_orm.py +53 -0
  41. kvk_connect/models/orm/signaal_orm.py +40 -0
  42. kvk_connect/models/orm/vestigingsprofiel_orm.py +58 -0
  43. kvk_connect/services/__init__.py +4 -0
  44. kvk_connect/services/record_service.py +66 -0
  45. kvk_connect/utils/__init__.py +5 -0
  46. kvk_connect/utils/env.py +16 -0
  47. kvk_connect/utils/formatting.py +11 -0
  48. kvk_connect/utils/rate_limit.py +21 -0
  49. kvk_connect/utils/tools.py +131 -0
  50. kvk_connect-0.1.6.dist-info/METADATA +352 -0
  51. kvk_connect-0.1.6.dist-info/RECORD +52 -0
  52. kvk_connect-0.1.6.dist-info/WHEEL +4 -0
@@ -0,0 +1,352 @@
1
+ Metadata-Version: 2.4
2
+ Name: kvk-connect
3
+ Version: 0.1.6
4
+ Summary: Client + domain mapping for KVK API
5
+ Author: Rob Verkuijlen
6
+ License-Expression: EUPL-1.2
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: Environment :: Web Environment
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
11
+ Classifier: Natural Language :: Dutch
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Topic :: Office/Business
15
+ Classifier: Topic :: Software Development :: Libraries
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Classifier: Typing :: Typed
18
+ Requires-Dist: requests>=2.32.5
19
+ Requires-Dist: python-dotenv>=1.2.1
20
+ Requires-Dist: ratelimit>=2.2.1
21
+ Requires-Dist: certifi>=2025.10.5
22
+ Requires-Dist: sqlalchemy>=2.0.44
23
+ Requires-Dist: pyodbc>=5.3.0
24
+ Requires-Dist: psycopg2-binary>=2.9.9
25
+ Requires-Python: >=3.13
26
+ Description-Content-Type: text/markdown
27
+
28
+ # KvK-connect
29
+
30
+ ## Inhoudsopgave
31
+
32
+ 1. [Introductie](#introductie)
33
+ 2. [Vereisten](#vereisten)
34
+ 3. [Snel aan de slag](#snel-aan-de-slag)
35
+ - [Als bibliotheekgebruiker](#als-bibliotheekgebruiker)
36
+ - [Met Docker](#met-docker)
37
+ - [Als ontwikkelaar](#als-ontwikkelaar)
38
+ 4. [Structuur van KvK](#structuur-van-kvk)
39
+ 5. [Data Flow](#data-flow-van-de-docker-apps)
40
+ 6. [Database Schema](#database-schema)
41
+ 7. [Functionaliteit](#functionaliteit)
42
+ 8. [Ontwikkelaarsgids](#ontwikkelaarsgids)
43
+ 9. [Roadmap](#roadmap)
44
+ 10. [KvK API Documentatie](#kvk-api-documentatie)
45
+
46
+ ---
47
+
48
+ ## Introductie
49
+
50
+ De Kamer van Koophandel (KvK) biedt meerdere APIs die samen informatie verstrekken over bedrijven. Uitvoerige documentatie is hier te vinden: https://developers.kvk.nl/documentation
51
+
52
+ Veel overheidsinstanties hebben een wettelijke taak voor vergunningsverlening, toezicht en handhaving (VTH) en gebruiken deze informatie voor validatie en opslag in hun systemen. Het controleren bij aanvraag gaat vaak met eenmalige KvK-bevragingen, maar signalen dat bedrijven hun statuten wijzigen of ophouden te bestaan zijn ook relevant.
53
+
54
+ Voor met name de laatste categorie is er synergie te behalen door het eenduidig opzetten van bevragingen en volgen van bedrijfsmutaties. Dit project maakt het bevragen-, opslaan- en werken met deze informatie eenvoudig, eenduidig en deelbaar.
55
+ Het idee is dat elke instantie met een eigen KvK subscription op hun eigen infrastructuur in korte tijd een eenvoudig werkende en compliant omgeving heeft opgezet waar direct mee gewerkt kan worden.
56
+
57
+ ---
58
+
59
+ ## Vereisten
60
+
61
+ > [NB]
62
+ > Dit project vereist een KVK API key om te functioneren. Verkrijg een key via [KvK Portaal](https://www.kvk.nl/).
63
+ > Voor het volgen van mutaties is een additioneel abonnement nodig.
64
+
65
+ ---
66
+
67
+ ## Snel aan de slag
68
+
69
+ ### Als bibliotheekgebruiker
70
+
71
+ Installeer het pakket en start direct met KvK-gegevens opvragen:
72
+
73
+ ```bash
74
+ pip install kvk-connect
75
+ ```
76
+
77
+ ```python
78
+ from kvk_connect import KVKApiClient, KVKRecordService
79
+
80
+ client = KVKApiClient(api_key="your_kvk_api_key")
81
+ service = KVKRecordService(client)
82
+ basisprofiel = service.get_basisprofiel("12345678")
83
+ ```
84
+ **NB:** De package naam is `kvk-connect`, maar imports werken met `kvk_connect` (underscore) in Python.
85
+
86
+ ### Met Docker (stand-alone)
87
+
88
+ Start een stand-alone lokale instantie met docker compose:
89
+
90
+ ```bash
91
+ # Clone en configureer
92
+ git clone https://github.com/MinBZK/kvk-connect.git
93
+ cd kvk-connect
94
+
95
+ # Environment instellen
96
+ cp .env.docker.example .env.docker
97
+ # Bewerk .env.docker met je KvK API-sleutel en alle POSTGRES_* settings, PostgreSQL zal met deze waarden initieren.
98
+
99
+ # Start services (PostgreSQL + alle apps)
100
+ docker compose -f docker-compose.local.yaml up -d
101
+
102
+ # Check logging met
103
+ docker compose logs -f .
104
+ ```
105
+
106
+ Op poort 5432 draait nu een PostgreSQL instantie met een `kvkconnect` db zoals uitgelegd onder [Database Schema](#database-schema), deze wordt actueel gehouden door de container-apps, zie [Data Flow](#data-flow-van-de-docker-apps).
107
+
108
+ ### Met Docker (externe Database)
109
+
110
+ Idem als hierboven, maar gebruik nu de docker-compose.db.yaml file en zet andere variabelen.
111
+ ```bash
112
+ cp .env.docker.example .env.docker
113
+ # Bewerk .env.docker met je KvK API-sleutel en SQL Connectie string naar externe DB.
114
+
115
+ # Start services
116
+ docker compose -f docker-compose.db.yaml up -d
117
+ ```
118
+ Voor externe databases moet de database, gebruikersnaam en rechten eerst aangemaakt worden alvorens verbinding gemaakt kan worden.
119
+
120
+ ### Als ontwikkelaar
121
+
122
+ Clone het project, installeer afhankelijkheden en voer de volledige development workflow uit:
123
+
124
+ ```bash
125
+ git clone https://github.com/MinBZK/kvk-connect.git
126
+ cd kvk-connect
127
+
128
+ just install # Bibliotheek + dev tools installeren
129
+ just check-all # Alle checks uitvoeren (lint, type, tests)
130
+ just test # Tests met coverage
131
+ just bump patch # Versie bumpen
132
+ just tag v0.1.5 # Release-tag maken
133
+ ```
134
+
135
+ Alle build, lifecycle, run en development-taken zijn als recipes gedefinieerd in `Justfile` als single source of truth. Installeer just en draai `just` zodat je alle gedefinieerde recipes te zien krijgt:
136
+
137
+ ```bash
138
+ $ just
139
+ Available recipes:
140
+ [deployment]
141
+ build # build the distribution packages
142
+ bump tag # bump the version in pyproject.toml use: patch, minor, or major
143
+ deploy version # publish the package to PyPI
144
+ tag tag msg # create and push a git tag use: tag name and message
145
+
146
+ [docker]
147
+ docker-build env='local' # Docker compose up ('local' by default, use 'db' external db build)
148
+ docker-down env='local' # Docker compose down
149
+ docker-logs env='local' *service # View logs from Docker services
150
+ docker-restart env='local' # Restart Docker services
151
+ docker-up env='local'
152
+
153
+ [lifecycle]
154
+ install # First install
155
+ update # Update dependencies
156
+
157
+ [qa]
158
+ check-all # Perform all checks [alias: a]
159
+ cov # Run tests and measure coverage
160
+ lint # Run linters
161
+ pc # Check pre-commit hooks
162
+ test *args # Run tests [alias: t]
163
+ typing # Check types
164
+ ```
165
+ ---
166
+
167
+ ## Structuur KvK
168
+ - **Basisprofiel**: Algemene informatie over een bedrijf, zoals naam, KVK nummer, RSIN, oprichtingsdatum, rechtsvorm, eigenaar, etc.
169
+ - Uniek kenmerk: kvk_nummer
170
+
171
+ - **Vestigingen**: Elke kvkNummer heeft 0 of meer vestigingen.
172
+ - Uniek kenmerk: kvk_nummer met vestigingsnummmer of '0000000' als er geen vestiging bestaat.
173
+
174
+ - **Vestigingsprofiel**: Informatie over een specifieke vestiging van een bedrijf, zoals post- en bezoek-adres en locatie
175
+ - Uniek kenmerk: vestiging_nummer
176
+
177
+ - **Signalen**: KvK lijst van mutatie-signalen. Hiermee wordt informatie gegeven welk kvknummer een mutatie heeft verwerkt. De Signaal informatie zelf wordt vooralsnog niet verwerkt. Deze mutaties zijn input voor de 4 apps om nieuwe informatie op te halen.
178
+ - NB: Voor deze mutaties is een losse subscription nodig bij de KvK.
179
+
180
+ --
181
+
182
+ ## Data Flow van de Docker Apps
183
+
184
+ De vier Docker apps werken onafhankelijk van elkaar samen om de KVK data actueel te houden:
185
+
186
+ ![AppsStructure](docs/apps.drawio.svg)
187
+
188
+
189
+ ### Proces
190
+
191
+ De apps draaien met `depends_on` ordering:
192
+
193
+ 1. **mutatie-reader** start eerst → pollt KVK Mutaties
194
+ 2. **basisprofiel** start → verwerkt signalen, haalt bedrijfsgegevens op
195
+ 3. **vestigingen** start → haalt vestigings-lijsten per bedrijf
196
+ 4. **vestigingsprofiel** start → haalt adres/postbus per vestiging
197
+
198
+
199
+ ## Database Schema (ORM Model)
200
+
201
+ ![ERD](docs/erd.drawio.svg)
202
+
203
+
204
+ ### Functionaliteit
205
+ * Rate-Limiting
206
+ - We volgen de door KvK gestelde limiet op API calls. Zowel in de kvk-connect library en in docker-compse via een rate limiting gateway.
207
+ - Exponential back-off bij tijdelijke downtime of overschreiden van de rate-limit
208
+ * Command Line Interface:
209
+ - Handmatig ophalen van eenmalige informatie.
210
+ - Seeden van de basis profielen middels een CSV file.
211
+ * Automatisch volgen van mutatiesignalen middels pull requests.
212
+ * Database agnotisch
213
+ - SQLAlchemy ondersteund een lange lijst van DB implementaties: Zie https://docs.sqlalchemy.org/en/21/dialects/index.html. Getest met SQLLite, MS SQL en PostgreSQL
214
+ - We hebben twee docker-compose scripts:
215
+ - 'local': Volledig self contained containers met PostgreSQL
216
+ - 'ext': Zelfde functionaliteit, maar met connectie naar externe database.
217
+ * Databases met tabellen worden automatisch aangemaakt, indexen en constraints worden toegevoegd voor optimale werking.
218
+
219
+ ## Roadmap
220
+ * Change historie bij kunnen houden.
221
+ * HelmChart voor deploy
222
+ * PowerBI rapport welke aangesloten kan worden en direct kan werken met de opgehaalde data.
223
+
224
+
225
+
226
+ ## KVK API Documentatie
227
+
228
+ ### Basisprofiel
229
+
230
+ | Parameter | Type | Details |
231
+ |-------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
232
+ | kvkNummer | string | Dutch KVK number. Consists of 8 digits. |
233
+ | indNonMailing | string | The Company does not wish to receive any unsolicited mail or sales advertising. |
234
+ | naam | string | Name under societal activity. |
235
+ | formeleRegistratiedatum | string | The date the company was registered with the KVK. |
236
+ | materieleRegistratie | object | Start date and end date (when applicable) of the company. |
237
+ | statutaireNaam | string | The name of the company when articles of association are registered. |
238
+ | handelsnamen | array | All names under which a company or branch trades (in order of registration). |
239
+ | sbiActiviteiten | array | Code description of SBI activities according to the SBI classification at CBS. There is no maximum number of results. See also www.kvk.nl/sbi. Array contains items with an sbiCode, sbiOmschrijving and indHoofdactiviteit. |
240
+ | links | array | 1. Link to the current query 2. Link to all related branches. |
241
+
242
+
243
+ ### Basisprofiel - hoofdvestiging
244
+ ### Vestigingsprofiel
245
+
246
+ | Parameter | Type | Details |
247
+ |--------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
248
+ | vestigingsnummer | string | Branch number. Unique number consisting of 12 digits. |
249
+ | kvkNummer | string | Dutch KVK number. Consists of 8 digits. |
250
+ | rsin | string | Legal Entities Partnerships Information Number. |
251
+ | indNonMailing | string | The Company does not wish to receive any unsolicited mail or sales advertising. |
252
+ | formeleRegistratiedatum | string | The date the branch was registered with the KVK. |
253
+ | materieleRegistratie | object | Starting and end date (if applicable) of the company. |
254
+ | eersteHandelsnaam | string | The name under which a company or branch trades. |
255
+ | indHoofdvestiging | string | Main branch (Yes/No). |
256
+ | indCommercieleVestiging | string | Commercial branch (Yes/No). |
257
+ | voltijdWerkzamePersonen | integer | Number of full-time employees. |
258
+ | totaalWerkzamePersonen | integer | Total number of employees. |
259
+ | deeltijdWerkzamePersonen | integer | Number of part-time employees. |
260
+ | handelsnamen | array | All names under which a company or branch trades (in order of registration). |
261
+ | adressen | array | List of addresses. See Address table for structure. |
262
+ | websites | array | Websites registered under main branch. |
263
+ | sbiActiviteiten | array | Code description of SBI activities in accordance with SBI 2008 (Standard Industrial Classification). No maximum results. See also www.kvk.nl/sbi. Array of items containing sbiCode, sbiOmschrijving, indHoofdactiviteit. |
264
+ | links | array | 1. Link to the current query. 2. Link to all branches (based on KVK number). 3. Link to basisprofiel (based on KVK number). 4. Link to vestigingsprofiel (based on branch number). |
265
+
266
+ ### Basisprofiel - eigenaar
267
+ ### Organisatieprofiel
268
+
269
+ | Parameter | Type | Details |
270
+ |-----------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
271
+ | rsin | string | Legal Entities Partnerships Information Number. |
272
+ | rechtsvorm | string | Legal form of the organisation/company. See Possible output of legal forms. |
273
+ | uitgebreideRechtsvorm | string | Legal form supplemented with information about structure or legal capacity. See Possible output of legal forms. |
274
+ | adressen | array | Are there branches? Then "Adressen" will be displayed at the main branch. Are there no branches? Then "Adressen" will be shown under "Eigenaar". See Address table for structure. |
275
+ | websites | array | If there is no main branch, the websites will be shown here. |
276
+ | links | array | 1. Link to the current query. 2. Link to Basisprofiel (based on KVK-number). |
277
+
278
+
279
+ ### Basisprofiel - vestigingen
280
+ ### Vestigingsoverzicht
281
+
282
+ | Parameter | Type | Details |
283
+ |----------------------------------|---------|------------------------------------------------------------------------------|
284
+ | kvkNummer | string | Dutch KVK number. Consists of 8 digits. |
285
+ | aantalCommercieleVestigingen | integer | |
286
+ | aantalNietCommercieleVestigingen | integer | |
287
+ | totaalAantalVestigingen | integer | |
288
+ | vestigingen | array | The relevant branches. See branch table for structure. |
289
+ | links | array | 1. Link to the current query. 2. Link to Basisprofiel (based on KVK number). |
290
+
291
+
292
+ ### Branch - The data structure of a branch from a basisprofiel vestigingen query.
293
+
294
+ | Parameter | Type | Details |
295
+ |-------------------------|--------|------------------------------------------------------------------------------|
296
+ | vestigingsnummer | string | Branch number. Unique number consisting of 12 digits. |
297
+ | eersteHandelsnaam | string | The name under which a company or establishment trades. |
298
+ | indHoofdvestiging | string | Main branch (Yes/No). |
299
+ | indCommercieleVestiging | string | Commercial branch (Yes/No). |
300
+ | volledigAdres | string | Street, house number, postal code and city. |
301
+ | links | array | 1. Link to the current query. 2. Link to Basisprofiel (based on KVK number). |
302
+
303
+
304
+ ### Address - The data structure of an address from a Basisprofiel hoofdvestiging or Eigenaar query.
305
+
306
+ | Parameter | Type | Details |
307
+ |----------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
308
+ | type | string | Correspondence and/or visiting address. |
309
+ | IndAfgeschermd | string | Address shielded (Yes/No). |
310
+ | volledigAdres | string | Full address |
311
+ | straatnaam | string | Street name. |
312
+ | huisnummer | string | House number. |
313
+ | huisnummerToevoeging | string | House number addition. For example: 1 or A. |
314
+ | huisletter | string | House letter addition. For example: M. |
315
+ | toevoegingAdres | string | Free text to describe an address in detail. For example, when one is located in a multi-company building and there are several floors and/or rooms. |
316
+ | postcode | string | Postal code. |
317
+ | postbusnummer | integer | Mailbox number. |
318
+ | plaats | string | Town. |
319
+ | straatHuisnummer | string | Street name and house number. |
320
+ | postcodeWoonplaats | string | Postal code and Town. |
321
+ | regio | string | Region. |
322
+ | land | string | Country. |
323
+ | geoData | object | BAG ID, GPS coordinates, and national triangulation coordinates. |
324
+
325
+ ### geoData object structure
326
+
327
+ | Parameter | Type | Details | Voorbeeld |
328
+ |------------------------|--------|--------------------------------|-------------------|
329
+ | addresseerbaarObjectId | string | Unieke BAG ID | 0351010000000307 |
330
+ | nummerAanduidingId | string | Unieke BAG nummeraanduiding id | 0351200000000307 |
331
+ | gpsLatitude | double | Lengtegraad | 52.0837054156714 |
332
+ | gpsLongitude | double | Breedtegraad | 5.423197559040923 |
333
+ | rijksdriehoekX | double | Rijksdriehoek X-coördinaat | 157467.0 |
334
+ | rijksdriehoekY | double | Rijksdriehoek Y-coördinaat | 455049.0 |
335
+ | rijksdriehoekZ | double | Rijksdriehoek Z-coördinaat | 0.0 |
336
+
337
+
338
+ ### materieleRegistratie object structure
339
+
340
+ | Parameter | Type | Details | Voorbeeld |
341
+ |---------------|--------|---------------------------|-------------|
342
+ | datumAanvang | string | Startdatum onderneming | "20210917" |
343
+ | datumEinde | string | Einddatum onderneming | "20210917" |
344
+
345
+
346
+ ### sbiActiviteiten array[] object Structure
347
+
348
+ | Parameter | Type | Details | Voorbeeld |
349
+ |--------------------|--------|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
350
+ | sbiCode | string | "62200" | "62200" |
351
+ | sbiOmschrijving | string | Activiteiten op het gebied van computerconsultancy en beheer van computerfaciliteiten | "Activiteiten op het gebied van computerconsultancy en beheer van computerfaciliteiten" |
352
+ | indHoofdactiviteit | string | Indicates whether this is the main activity (Yes/No) | "Ja" |
@@ -0,0 +1,52 @@
1
+ kvk_connect/__init__.py,sha256=f9sNuSTmn9ozO8trviuh1Uf3D4fJoP1pFZTRXsL5Ta4,256
2
+ kvk_connect/api/__init__.py,sha256=McQQthKdAPcajpKQSd1dKQx5gHOFlhD6zaWIbEejCNg,94
3
+ kvk_connect/api/client.py,sha256=hI_0_UjljSzCyARN1svq6j0Hcm-kcEgNmoEpDbvMqx0,7480
4
+ kvk_connect/api/endpoints.py,sha256=n5vgLPR9lOlibxReQAaGpDqXE0ntieyTqAJAVuupMBE,721
5
+ kvk_connect/api/session.py,sha256=MDr2SjIUAQ6IgKFotKEESMySsceLaMxA4o45ivHANbM,1087
6
+ kvk_connect/cli/main.py,sha256=9EzFI7uCRET8Bj2ssL_87UGAkeOUPlTzZKnfvhFTKjA,740
7
+ kvk_connect/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ kvk_connect/db/basisprofiel_reader.py,sha256=-iaJC7qtek55hbADKOoIbQsgkFyaRVrg1GwG9siE8b0,2827
9
+ kvk_connect/db/basisprofiel_writer.py,sha256=z4xMY3KhuKXcCa3LYHAALn8QUlIG33k-LSU3GFNGTrw,2680
10
+ kvk_connect/db/init.py,sha256=iTvzcEEOirGcfZjyfPVzW2tSEIQph2z99vEQdV2fwQY,796
11
+ kvk_connect/db/kvkvestigingen_reader.py,sha256=Le9UlHfYWORtijmYqq9YLclbxmq4CE961_MvMST7EKw,1656
12
+ kvk_connect/db/kvkvestigingen_writer.py,sha256=27Pe4fqUCipIoSACi4pECduP58yu-vBKwVRwLVJCkYc,2711
13
+ kvk_connect/db/signaal_reader.py,sha256=8Oy_uQrh60tSTdP8dXWCdTF_E-IHN05aC-3oh2-cGNQ,847
14
+ kvk_connect/db/signaal_writer.py,sha256=kUpMTVIn5ELSi02KmN3nPVl42e2Qau4jXEibOcPaPcA,2400
15
+ kvk_connect/db/vestigingenprofiel_reader.py,sha256=CUW6OB_xXUYFHtCHwaS39TIqHA7XppCAxEkily_F08M,2939
16
+ kvk_connect/db/vestigingsprofiel_writer.py,sha256=Zvo1AycNOMS03cHbeVqTNpHHQkYEqgO3dVfyB3fad-k,3686
17
+ kvk_connect/logging_config.py,sha256=r5CBtkWhFfrUrgHyU4HTDF05l4ZFZwo9es3ZfzA7eKs,974
18
+ kvk_connect/mappers/__init__.py,sha256=mnsoedQGF23QwQBeHCJ3g30jc_2fb0f7TVjjMQywu0s,33
19
+ kvk_connect/mappers/kvk_record_mapper.py,sha256=ZqgB7BTX0Yp8YT8yMrp4D1ORdDsKjQ1prRoxVkHNkYQ,3952
20
+ kvk_connect/mappers/map_mutatie_abonnement_api_to_mutatieabonnement.py,sha256=nxkxpibRCoBwEESZHXqZ7m6Wt8HwvDI-d2zPI4f17co,539
21
+ kvk_connect/mappers/map_vestigingen_api_to_vestigingsnummers.py,sha256=mtCJNI2sQl-YkUnaOxLZ4tQSa2whs6u2i2oM1DJQ_7A,646
22
+ kvk_connect/mappers/map_vestigingsprofiel_api_to_vestigingsprofiel_domain.py,sha256=pnpMVvNjLyzC7TQujrIH39jA2Jg1NVStkO21u_QwBBI,2608
23
+ kvk_connect/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ kvk_connect/models/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ kvk_connect/models/api/abonnementen_api.py,sha256=OKYycznoDYbxpGlmiWImLJuYOt-Mv8u8Ak1WejRzCSY,1028
26
+ kvk_connect/models/api/basisprofiel_api.py,sha256=-dLBwh6kFO71FR3K1K42hDEYywN0knlPSdPiIWFTOK0,8029
27
+ kvk_connect/models/api/mutatie_abonnementen_api.py,sha256=2nxnYueLaksUnU-i7aZf_KY-TO3DQYLAPi0v2x7DjCA,941
28
+ kvk_connect/models/api/mutatiesignalen_api.py,sha256=pnHXx-IPX4E1fdxlJMuovcgHXp-ta4TzXq8fOGmS1pY,1311
29
+ kvk_connect/models/api/vestigingen_api.py,sha256=f2jCSQuzb-B48ISZKI6ivUFZtmeak-lrqWrPkotbN-w,2786
30
+ kvk_connect/models/api/vestigingsprofiel_api.py,sha256=AjF5k2Qw46ptrrqteksyRxzo48XntnvmPUStv5-5Ldg,3237
31
+ kvk_connect/models/domain/__init__.py,sha256=Dp6ZM0RioNzaRA7xriPi2P-a2lMebvvthONqqA3wQ00,349
32
+ kvk_connect/models/domain/basisprofiel.py,sha256=3A48pY-L9_si29ewUipD9atGIKww9YMfnSBHQlFDJkc,2512
33
+ kvk_connect/models/domain/kvkvestigingsnummersdomain.py,sha256=HgIqpDeS6x-H3V2RQHHdr9eX5H5dDotKPuFx2lqPcp8,928
34
+ kvk_connect/models/domain/mutatie_abonnement.py,sha256=ie6fxlWJs8KMf8vkHMao1_kkIJIYNJs4D4rIKhqA-zA,570
35
+ kvk_connect/models/domain/vestigingsadresdomain.py,sha256=Zp4o9gPKolja5UqEz6Arm5RAI-PioKv_j0EwnlkUnXE,2397
36
+ kvk_connect/models/domain/vestigingsadressendomain.py,sha256=VJWKeVfojS3Y_Yx8eYFHmHJ04Y1rDRat-p-38Y-VoJc,1830
37
+ kvk_connect/models/domain/vestigingsprofiel_domain.py,sha256=G9xqPnc01xyaNndNDfzjllUQReG4-snBLqHoGTWMWcE,2338
38
+ kvk_connect/models/orm/base.py,sha256=mH7f2d_jiyxJSSx9Gk53QBXRa3LiKBsBjkFgvmtH1WA,83
39
+ kvk_connect/models/orm/basisprofiel_orm.py,sha256=MopyETnseRnT7Ae2ncGFrLkHM9MsGVIx5dlvEQfKUqw,2057
40
+ kvk_connect/models/orm/kvkvestigingen_orm.py,sha256=M5d9LYLKN-iAACohmIrNqFvTyYEmhr-NCPYLGjUrM4U,1751
41
+ kvk_connect/models/orm/signaal_orm.py,sha256=lOPpYzeDyPUgz9Wr11XgNWYIYqXBWI7wMV0O9wUEpFI,1067
42
+ kvk_connect/models/orm/vestigingsprofiel_orm.py,sha256=THTDl6xMPaESiiEKHBBiO4q2pX-rpf9XWGU1KvEkoZ8,2596
43
+ kvk_connect/services/__init__.py,sha256=NcGARTTWsvJnxdYMWCoQG7AYIUe21l870n3O1ahnY8s,110
44
+ kvk_connect/services/record_service.py,sha256=K_Ux11Hfkml6M3wBUmo926dL0mOzmDw1QbypWTceTpI,2610
45
+ kvk_connect/utils/__init__.py,sha256=GcvSpwCl9mAEWXLuZjxnPdyw0QOkQR4OWrsW1Cn9ups,168
46
+ kvk_connect/utils/env.py,sha256=rDAhAwBbV4bDjoHckpgL46M0Jsc1oIXBz3T52ao2f6E,394
47
+ kvk_connect/utils/formatting.py,sha256=JtF8PncXEeR5cQkpL5grU_fRQ6T3E3P6AUhVMGCVilc,384
48
+ kvk_connect/utils/rate_limit.py,sha256=mM1PDSukL6_Ai2MVX64OEN1rOz5X7zHNfg6YVxXbXp8,502
49
+ kvk_connect/utils/tools.py,sha256=OiXi4XF4BZmlXske_Sp3ytZO5TMLqXu_J7mqTr8LL9A,4125
50
+ kvk_connect-0.1.6.dist-info/WHEEL,sha256=5w2T7AS2mz1-rW9CNagNYWRCaB0iQqBMYLwKdlgiR4Q,78
51
+ kvk_connect-0.1.6.dist-info/METADATA,sha256=BNDehvXl0YYx-qL_PFaGpe8EJXEU51mccH1Y5WwCxV0,26218
52
+ kvk_connect-0.1.6.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.9.7
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any