mockjutsu 1.0.0__tar.gz

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 (106) hide show
  1. mockjutsu-1.0.0/LICENSE +38 -0
  2. mockjutsu-1.0.0/PKG-INFO +386 -0
  3. mockjutsu-1.0.0/README.md +331 -0
  4. mockjutsu-1.0.0/pyproject.toml +98 -0
  5. mockjutsu-1.0.0/setup.cfg +4 -0
  6. mockjutsu-1.0.0/setup.py +4 -0
  7. mockjutsu-1.0.0/src/mockjutsu/__init__.py +1 -0
  8. mockjutsu-1.0.0/src/mockjutsu/api/__init__.py +0 -0
  9. mockjutsu-1.0.0/src/mockjutsu/api/main.py +225 -0
  10. mockjutsu-1.0.0/src/mockjutsu/cli.py +927 -0
  11. mockjutsu-1.0.0/src/mockjutsu/core.py +600 -0
  12. mockjutsu-1.0.0/src/mockjutsu/data/__init__.py +1 -0
  13. mockjutsu-1.0.0/src/mockjutsu/data/bip39_en.py +2050 -0
  14. mockjutsu-1.0.0/src/mockjutsu/generators/__init__.py +1 -0
  15. mockjutsu-1.0.0/src/mockjutsu/generators/ai_vector.py +62 -0
  16. mockjutsu-1.0.0/src/mockjutsu/generators/automotive.py +188 -0
  17. mockjutsu-1.0.0/src/mockjutsu/generators/aviation.py +88 -0
  18. mockjutsu-1.0.0/src/mockjutsu/generators/bank_statement.py +221 -0
  19. mockjutsu-1.0.0/src/mockjutsu/generators/banking.py +341 -0
  20. mockjutsu-1.0.0/src/mockjutsu/generators/barcode.py +163 -0
  21. mockjutsu-1.0.0/src/mockjutsu/generators/cardphysics.py +300 -0
  22. mockjutsu-1.0.0/src/mockjutsu/generators/commerce.py +240 -0
  23. mockjutsu-1.0.0/src/mockjutsu/generators/communication.py +175 -0
  24. mockjutsu-1.0.0/src/mockjutsu/generators/compliance.py +112 -0
  25. mockjutsu-1.0.0/src/mockjutsu/generators/corporate.py +106 -0
  26. mockjutsu-1.0.0/src/mockjutsu/generators/crypto.py +276 -0
  27. mockjutsu-1.0.0/src/mockjutsu/generators/crypto_fuzz.py +233 -0
  28. mockjutsu-1.0.0/src/mockjutsu/generators/ecommerce.py +181 -0
  29. mockjutsu-1.0.0/src/mockjutsu/generators/edi.py +168 -0
  30. mockjutsu-1.0.0/src/mockjutsu/generators/event_sourcing.py +215 -0
  31. mockjutsu-1.0.0/src/mockjutsu/generators/fido2.py +197 -0
  32. mockjutsu-1.0.0/src/mockjutsu/generators/financial.py +421 -0
  33. mockjutsu-1.0.0/src/mockjutsu/generators/financial_markets.py +565 -0
  34. mockjutsu-1.0.0/src/mockjutsu/generators/gamedev.py +155 -0
  35. mockjutsu-1.0.0/src/mockjutsu/generators/hardware.py +126 -0
  36. mockjutsu-1.0.0/src/mockjutsu/generators/health.py +353 -0
  37. mockjutsu-1.0.0/src/mockjutsu/generators/identity.py +733 -0
  38. mockjutsu-1.0.0/src/mockjutsu/generators/intl_ids.py +871 -0
  39. mockjutsu-1.0.0/src/mockjutsu/generators/iot.py +546 -0
  40. mockjutsu-1.0.0/src/mockjutsu/generators/location.py +100 -0
  41. mockjutsu-1.0.0/src/mockjutsu/generators/meta.py +475 -0
  42. mockjutsu-1.0.0/src/mockjutsu/generators/mrz.py +270 -0
  43. mockjutsu-1.0.0/src/mockjutsu/generators/name_data.py +862 -0
  44. mockjutsu-1.0.0/src/mockjutsu/generators/nmea.py +159 -0
  45. mockjutsu-1.0.0/src/mockjutsu/generators/ohlcv.py +193 -0
  46. mockjutsu-1.0.0/src/mockjutsu/generators/oidc.py +210 -0
  47. mockjutsu-1.0.0/src/mockjutsu/generators/payments.py +425 -0
  48. mockjutsu-1.0.0/src/mockjutsu/generators/prometheus.py +255 -0
  49. mockjutsu-1.0.0/src/mockjutsu/generators/reverse_regex.py +180 -0
  50. mockjutsu-1.0.0/src/mockjutsu/generators/security.py +238 -0
  51. mockjutsu-1.0.0/src/mockjutsu/generators/social.py +123 -0
  52. mockjutsu-1.0.0/src/mockjutsu/generators/telecom.py +202 -0
  53. mockjutsu-1.0.0/src/mockjutsu/generators/telemetry.py +167 -0
  54. mockjutsu-1.0.0/src/mockjutsu/generators/tle.py +216 -0
  55. mockjutsu-1.0.0/src/mockjutsu/generators/ubl.py +267 -0
  56. mockjutsu-1.0.0/src/mockjutsu/generators/wallet.py +228 -0
  57. mockjutsu-1.0.0/src/mockjutsu/masker.py +613 -0
  58. mockjutsu-1.0.0/src/mockjutsu/regulations.py +1982 -0
  59. mockjutsu-1.0.0/src/mockjutsu.egg-info/PKG-INFO +386 -0
  60. mockjutsu-1.0.0/src/mockjutsu.egg-info/SOURCES.txt +104 -0
  61. mockjutsu-1.0.0/src/mockjutsu.egg-info/dependency_links.txt +1 -0
  62. mockjutsu-1.0.0/src/mockjutsu.egg-info/entry_points.txt +2 -0
  63. mockjutsu-1.0.0/src/mockjutsu.egg-info/requires.txt +32 -0
  64. mockjutsu-1.0.0/src/mockjutsu.egg-info/top_level.txt +1 -0
  65. mockjutsu-1.0.0/tests/test_ai_vector.py +157 -0
  66. mockjutsu-1.0.0/tests/test_api.py +395 -0
  67. mockjutsu-1.0.0/tests/test_automotive.py +343 -0
  68. mockjutsu-1.0.0/tests/test_aviation.py +163 -0
  69. mockjutsu-1.0.0/tests/test_bank_statement.py +206 -0
  70. mockjutsu-1.0.0/tests/test_bip39.py +199 -0
  71. mockjutsu-1.0.0/tests/test_cardphysics.py +490 -0
  72. mockjutsu-1.0.0/tests/test_cli.py +2764 -0
  73. mockjutsu-1.0.0/tests/test_cli_industrial.py +46 -0
  74. mockjutsu-1.0.0/tests/test_cli_output.py +67 -0
  75. mockjutsu-1.0.0/tests/test_cross_field_consistency.py +246 -0
  76. mockjutsu-1.0.0/tests/test_crypto_fuzz.py +167 -0
  77. mockjutsu-1.0.0/tests/test_edi.py +179 -0
  78. mockjutsu-1.0.0/tests/test_event_sourcing.py +187 -0
  79. mockjutsu-1.0.0/tests/test_external_validators.py +1638 -0
  80. mockjutsu-1.0.0/tests/test_fido2.py +176 -0
  81. mockjutsu-1.0.0/tests/test_fix_protocol.py +274 -0
  82. mockjutsu-1.0.0/tests/test_gamedev.py +257 -0
  83. mockjutsu-1.0.0/tests/test_generators.py +4153 -0
  84. mockjutsu-1.0.0/tests/test_hardware.py +39 -0
  85. mockjutsu-1.0.0/tests/test_hl7_fhir_dicom.py +347 -0
  86. mockjutsu-1.0.0/tests/test_intl_ids.py +386 -0
  87. mockjutsu-1.0.0/tests/test_iot_wireless.py +143 -0
  88. mockjutsu-1.0.0/tests/test_known_vectors.py +989 -0
  89. mockjutsu-1.0.0/tests/test_locale_coverage.py +258 -0
  90. mockjutsu-1.0.0/tests/test_mask.py +510 -0
  91. mockjutsu-1.0.0/tests/test_mrz.py +297 -0
  92. mockjutsu-1.0.0/tests/test_nmea.py +349 -0
  93. mockjutsu-1.0.0/tests/test_ohlcv.py +232 -0
  94. mockjutsu-1.0.0/tests/test_oidc.py +207 -0
  95. mockjutsu-1.0.0/tests/test_payments.py +284 -0
  96. mockjutsu-1.0.0/tests/test_performance.py +34 -0
  97. mockjutsu-1.0.0/tests/test_prometheus.py +339 -0
  98. mockjutsu-1.0.0/tests/test_psd2.py +285 -0
  99. mockjutsu-1.0.0/tests/test_reverse_regex.py +122 -0
  100. mockjutsu-1.0.0/tests/test_security.py +150 -0
  101. mockjutsu-1.0.0/tests/test_sync.py +166 -0
  102. mockjutsu-1.0.0/tests/test_tax_b2b.py +124 -0
  103. mockjutsu-1.0.0/tests/test_telemetry.py +211 -0
  104. mockjutsu-1.0.0/tests/test_tle.py +253 -0
  105. mockjutsu-1.0.0/tests/test_ubl.py +304 -0
  106. mockjutsu-1.0.0/tests/test_wallet.py +179 -0
@@ -0,0 +1,38 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Altan Sezer Ayan - A.S.A
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ DISCLAIMER β€” TESTING PURPOSES ONLY
26
+
27
+ All data generated by this software is algorithmically synthesized and entirely
28
+ fictitious. It is designed exclusively for software testing, QA automation, and
29
+ load testing workflows.
30
+
31
+ Generated values β€” including but not limited to identity numbers, IBANs, card
32
+ numbers, passport numbers, and financial identifiers β€” must never be used for
33
+ fraud, identity theft, financial crime, impersonation, or any other unlawful
34
+ activity.
35
+
36
+ The authors and copyright holders expressly disclaim any liability arising from
37
+ misuse of this software. Use of this software constitutes acceptance of these
38
+ terms.
@@ -0,0 +1,386 @@
1
+ Metadata-Version: 2.4
2
+ Name: mockjutsu
3
+ Version: 1.0.0
4
+ Summary: Algorithmic mock data engine β€” 390+ types, 6 locales, real checksums. TCKN, IBAN, Luhn, VIN, NHS, SWIFT, crypto, MRZ, JMeter plugin and more.
5
+ Author-email: Altan Sezer Ayan <altansezerayan@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/altansayan/mock-jutsu-api
8
+ Project-URL: Repository, https://github.com/altansayan/mock-jutsu-api
9
+ Project-URL: Bug Tracker, https://github.com/altansayan/mock-jutsu-api/issues
10
+ Keywords: mock,fake,data,testing,fintech,faker,tckn,iban,luhn,vin,nhs,rfid,nfc,epc,ndef,apdu,ir,nec,pronto,rc5,locale
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Topic :: Software Development :: Testing
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Operating System :: OS Independent
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: click>=8.0
26
+ Requires-Dist: pyfiglet>=0.8
27
+ Requires-Dist: rich>=13.0
28
+ Provides-Extra: server
29
+ Requires-Dist: fastapi>=0.100; extra == "server"
30
+ Requires-Dist: granian>=1.0; extra == "server"
31
+ Requires-Dist: httpx>=0.24; extra == "server"
32
+ Provides-Extra: test
33
+ Requires-Dist: pytest>=7.0; extra == "test"
34
+ Requires-Dist: pytest-cov>=4.0; extra == "test"
35
+ Requires-Dist: playwright>=1.30; extra == "test"
36
+ Requires-Dist: pytest-playwright>=0.4; extra == "test"
37
+ Provides-Extra: validation
38
+ Requires-Dist: python-stdnum>=1.20; extra == "validation"
39
+ Requires-Dist: schwifty>=2023.0; extra == "validation"
40
+ Requires-Dist: bip-utils>=2.9; extra == "validation"
41
+ Requires-Dist: mrz>=0.6; extra == "validation"
42
+ Requires-Dist: lxml>=5.0; extra == "validation"
43
+ Requires-Dist: PyJWT>=2.8; extra == "validation"
44
+ Requires-Dist: cryptography>=42.0; extra == "validation"
45
+ Requires-Dist: mt940>=0.8; extra == "validation"
46
+ Requires-Dist: hl7>=0.4; extra == "validation"
47
+ Requires-Dist: fhir.resources>=7.0; extra == "validation"
48
+ Requires-Dist: simplefix>=1.0; extra == "validation"
49
+ Requires-Dist: netaddr>=1.0; extra == "validation"
50
+ Requires-Dist: icd10-cm>=0.0.5; extra == "validation"
51
+ Requires-Dist: cbor2>=5.0; extra == "validation"
52
+ Requires-Dist: fido2>=1.1; extra == "validation"
53
+ Requires-Dist: phonenumbers>=8.13; extra == "validation"
54
+ Dynamic: license-file
55
+
56
+ <div align="center">
57
+
58
+ <!-- A placeholder for a future logo or GIF -->
59
+ <!-- <img src="https://raw.githubusercontent.com/altansayan/mock-jutsu-api/main/assets/mock-jutsu-banner.png" alt="mock-jutsu banner" width="100%"> -->
60
+
61
+ # πŸ₯· Mock Jutsu
62
+
63
+ **Stop mocking with random strings. Start generating cryptographically valid test data.**
64
+
65
+ [![Tests](https://img.shields.io/badge/tests-5955%20passed-22c55e?style=for-the-badge&logo=pytest)](./tests)
66
+ [![Python](https://img.shields.io/badge/python-3.9%2B-3b82f6?style=for-the-badge&logo=python&logoColor=white)](https://python.org)
67
+ [![Data Types](https://img.shields.io/badge/Data%20Types-390-a855f7?style=for-the-badge)](https://altansayan.github.io/mock-jutsu-api/)
68
+ [![Locales](https://img.shields.io/badge/Locales-6-ec4899?style=for-the-badge)](#-6-locales-100-real-algorithms)
69
+ [![Zero Dependencies](https://img.shields.io/badge/Dependencies-0-ff69b4?style=for-the-badge)](#-features-that-will-blow-your-mind)
70
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](./LICENSE)
71
+ [![Docker Hub](https://img.shields.io/badge/Docker%20Hub-altansezerayan%2Fmock--jutsu-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://hub.docker.com/r/altansezerayan/mock-jutsu)
72
+ [![JMeter Plugin](https://img.shields.io/badge/JMeter%20Plugin-v1.0.0-D22128?style=for-the-badge&logo=apachejmeter&logoColor=white)](https://github.com/altansayan/mock-jutsu-jmeter/releases/tag/v1.0.0)
73
+ [![Postman](https://img.shields.io/badge/Postman-390%20Requests-FF6C37?style=for-the-badge&logo=postman&logoColor=white)](https://github.com/altansayan/mock-jutsu-api/tree/main/.postman/collections)
74
+
75
+ > **DISCLAIMER β€” FOR TESTING PURPOSES ONLY**
76
+ > All data generated by this library is **algorithmically synthesized and entirely fictitious**.
77
+ > Designed exclusively for software testing, QA automation, and load testing.
78
+ > Generated values (identity numbers, IBANs, card numbers, passport numbers, etc.) must **never** be used for fraud, identity theft, financial crime, or any other illegal activity.
79
+ > The authors accept no liability for misuse. By using this software you agree to these terms.
80
+
81
+ *Traditional Mockers give you a random 16-digit string and call it a credit card number.<br>**Mock Jutsu runs Luhn. Every. Single. Time.***
82
+
83
+ [**Installation**](#%EF%B8%8F-installation) β€’ [**Why Mock Jutsu?**](#-why-not-faker) β€’ [**Usage Guide**](#-usage) β€’ [**390 Types**](#236-supported-data-types)
84
+
85
+ </div>
86
+
87
+ ---
88
+
89
+ ## πŸš€ The Ultimate Algorithmic Mock Data Engine
90
+
91
+ QA engineers, Data Scientists, and Fintech developers are tired of test data failing at the validation layer. **Mock Jutsu** is built differently. It treats every identifier as a strict technical specification. If an algorithm defines a checksum, `Mock Jutsu` computes it. **No shortcuts.**
92
+
93
+ ### πŸ”₯ Features That Will Blow Your Mind
94
+ - **Zero External Dependencies**: The core data engine uses pure Python standard library for maximum speed, security, and zero bloat.
95
+ - **5955 Automated Tests**: We don't guess. We verify. Every single format and locale is rigorously tested against real-world algorithmic specifications.
96
+ - **Multi-Interface**: Use it as a rich Python SDK, a blazing-fast CLI, or a FastAPI REST endpoint.
97
+ - **Export Anywhere**: Directly export structured records as JSON, CSV, or SQL `INSERT` statements with thousands of rows in milliseconds.
98
+ - **Context-Aware Profiles**: Generate a person, and their email, phone, national ID, and IBAN will inherently match their locale and name.
99
+
100
+ ---
101
+
102
+ ## πŸ€” Why Mock Jutsu?
103
+
104
+ | Capability | `Mock Jutsu` πŸ₯· | Traditional Mockers 🀑 |
105
+ |:---|:---:|:---:|
106
+ | **Card Numbers (Luhn Valid)** | βœ… 9 Networks Validated | ❌ Random digits |
107
+ | **IBANs (MOD-97 Valid)** | βœ… Country-specific | ❌ Format-only |
108
+ | **National IDs** | βœ… Real algorithms (6 countries) | ⚠️ Partial / Random |
109
+ | **Telecom (IMEI, ICCID, IMSI)**| βœ… 3GPP / ITU-T Valid | ❌ None |
110
+ | **Securities (ISIN, LEI, SEDOL)**| βœ… Checksum Validated | ❌ None |
111
+ | **Crypto (BTC, ETH addresses)** | βœ… Base58Check / Keccak-256 | ❌ None |
112
+ | **Payment QRs (EMVCo/SEPA)** | βœ… CRC-16 Checksum / BCD Format | ❌ None |
113
+ | **Barcodes (EAN, ISBN, GS1)** | βœ… GS1 v24.0 Valid | ❌ None |
114
+ | **Tracking (USPS/UPS/FedEx)** | βœ… Pub.97 Luhn / Mod-11 | ❌ None |
115
+ | **Banking Routing Codes** | βœ… Valid ABA/Sort/BIC | ⚠️ Format-only |
116
+ | **RFID & NFC Data** | βœ… EPC SGTIN-96, NDEF URI/Text | ❌ None |
117
+ | **Context-Aware Profiles** | βœ… Linked Name ↔ Email ↔ Phone | ⚠️ Disconnected randoms |
118
+ | **SQL/CSV Direct Export** | βœ… Native Support | ❌ Manual generation |
119
+ | **Schema/Template Generation**| βœ… `jutsu.template()` for complex dictionaries | ❌ Manual object mapping |
120
+ | **Built-in CLI Tool** | βœ… Out-of-the-box (`mockjutsu generate`) | ❌ Requires custom scripts |
121
+ | **Built-in REST API** | βœ… 1 command (`mockjutsu start-api`) | ❌ Requires custom wrapper |
122
+ | **Reverse Regex Generation** | βœ… Pattern β†’ valid string (stdlib only) | ❌ None |
123
+ | **External Dependencies** | βœ… **Zero** (Pure Python) | ❌ Relies on external files |
124
+ | **Regulation-Aware Masking** | βœ… PCI DSS Β· GDPR Β· KVKK Β· HIPAA Β· GLBA Β· UK GDPR Β· LGPD Β· PDPA Β· PIPL Β· PSD2 Β· BSA Β· FATF | ❌ None |
125
+
126
+ ---
127
+
128
+ ## βš™οΈ Installation
129
+
130
+ ### Python Package
131
+
132
+ Requires **Python 3.9+**.
133
+
134
+ ```bash
135
+ # Standard Installation
136
+ pip install mockjutsu
137
+
138
+ # For Developers (Editable Mode)
139
+ git clone https://github.com/altansayan/mock-jutsu-api.git
140
+ cd mock-jutsu-api
141
+ pip install -e .
142
+ ```
143
+
144
+ ### REST API β€” Docker (Recommended)
145
+
146
+ Run the full REST API locally with a single command. No Python required.
147
+
148
+ [![Docker Hub](https://img.shields.io/badge/Docker%20Hub-altansezerayan%2Fmock--jutsu-2496ED?style=flat&logo=docker&logoColor=white)](https://hub.docker.com/r/altansezerayan/mock-jutsu)
149
+
150
+ ```bash
151
+ # Pull and run (port 8000)
152
+ docker run -p 8000:8000 altansezerayan/mock-jutsu:latest
153
+
154
+ # With custom worker count
155
+ docker run -p 8000:8000 -e GRANIAN_WORKERS=8 altansezerayan/mock-jutsu:latest
156
+
157
+ # Run in background
158
+ docker run -d -p 8000:8000 --name mock-jutsu altansezerayan/mock-jutsu:latest
159
+ ```
160
+
161
+ Once running:
162
+ - **Swagger UI:** http://localhost:8000/docs
163
+ - **API:** http://localhost:8000/generate/{type}
164
+
165
+ ### 🌐 REST API β€” Built-in CLI (Local, Optional)
166
+
167
+ If you have the Python package installed, you can also spin up the API directly via CLI β€” no Docker needed.
168
+
169
+ ```bash
170
+ $ mockjutsu start-api --port 8000
171
+ ```
172
+ ```http
173
+ GET http://localhost:8000/generate/cardnum?network=visa
174
+ GET http://localhost:8000/profile?locale=DE&count=3
175
+
176
+ # Interactive Swagger UI automatically available at http://localhost:8000/docs
177
+ ```
178
+
179
+ ### πŸ”§ JMeter Plugin
180
+
181
+ Use Mock Jutsu types directly inside JMeter test plans as native custom functions β€” no scripting, no CSV, no subprocess required.
182
+
183
+ [![JMeter Plugin](https://img.shields.io/badge/JMeter%20Plugin-v1.0.0-red?style=flat&logo=apachejmeter&logoColor=white)](https://github.com/altansayan/mock-jutsu-jmeter/releases/tag/v1.0.0)
184
+
185
+ ```
186
+ ${__mockjutsu_identity(tckn|TR)} β†’ 46396909916
187
+ ${__mockjutsu_financial(iban|DE)} β†’ DE89370400440532013000
188
+ ${__mockjutsu_financial(cardnum:visa|TR|mask)} β†’ 4155 56** **** 3399
189
+ ${__mockjutsu_contact(email|US)} β†’ john.doe@example.com
190
+ ```
191
+
192
+ β†’ **[mock-jutsu-jmeter on GitHub](https://github.com/altansayan/mock-jutsu-jmeter)** Β· [Download JAR v1.0.0](https://github.com/altansayan/mock-jutsu-jmeter/releases/tag/v1.0.0)
193
+
194
+ ### πŸ“¬ Postman Collection
195
+
196
+ 390 ready-to-run requests organized by category. Import and hit Send.
197
+
198
+ [![Postman](https://img.shields.io/badge/Postman-Collection-FF6C37?style=flat&logo=postman&logoColor=white)](https://github.com/altansayan/mock-jutsu-api/tree/main/.postman/collections)
199
+
200
+ ```bash
201
+ # Collection is bundled in this repo β€” import directly in Postman:
202
+ # .postman/collections/mock-jutsu.postman_collection.json
203
+ ```
204
+
205
+ β†’ **[View Collection](https://github.com/altansayan/mock-jutsu-api/tree/main/.postman/collections)**
206
+
207
+ ---
208
+
209
+ ## πŸ’» Usage
210
+
211
+ Whether you are writing automated tests, working in the terminal, or spinning up a mock API, `Mock Jutsu` is ready.
212
+
213
+ ### 🐍 1. Python SDK
214
+
215
+ ```python
216
+ from mockjutsu.core import jutsu
217
+
218
+ # 1. Complete, internally-consistent profiles
219
+ person = jutsu.profile(locale='DE')
220
+ print(person['nationalid']) # -> "86094599602" (Steuer-ID: ISO 7064 MOD 11,10 βœ…)
221
+ print(person['iban']) # -> "DE89370400440532013000" (ISO 13616 MOD-97 βœ…)
222
+
223
+ # 2. Individual precise data types
224
+ card = jutsu.generate('cardnum', network='amex') # -> "376956063521007" (Luhn βœ…)
225
+ btc = jutsu.generate('btc_address') # -> "1BvBMSEYstWet..." (Base58Check SHA256d βœ…)
226
+
227
+ # 3. 🎯 Fully Customizable Templates
228
+ # Define your own schema and generate a list of dictionaries instantly
229
+ users = jutsu.template(
230
+ {'user_id': 'uuid', 'name': 'fullname', 'wallet': 'crypto_address'},
231
+ count=100, locale='UK'
232
+ )
233
+
234
+ # 4. Generate thousands of records & export directly to SQL
235
+ sql = jutsu.export(
236
+ {'id': 'uuid', 'name': 'fullname', 'card': 'cardnum', 'bank_account': 'iban'},
237
+ count=5000, format='sql', table='users', locale='TR'
238
+ )
239
+ ```
240
+
241
+ ### ⚑ 2. Beautiful CLI
242
+
243
+ Generate valid test data straight from your terminal.
244
+
245
+ ```bash
246
+ # Get single values instantly
247
+ $ mockjutsu generate tckn
248
+ $ mockjutsu generate iban --locale FR
249
+ $ mockjutsu generate cardnum --network troy
250
+
251
+ # Need an array of valid US phone numbers?
252
+ $ mockjutsu bulk phone --count 500 --locale US
253
+
254
+ # Generate CSV datasets and save to a file
255
+ $ mockjutsu template uuid fullname crypto_address --count 100 --format csv > users.csv
256
+
257
+ # Generate SQL seed files and save to a text file
258
+ $ mockjutsu template uuid fullname crypto_address --count 500 --format sql --table USERS > data.txt
259
+ ```
260
+
261
+ ### 🧱 4. Template Generation via CLI
262
+
263
+ Combine multiple data types into a structured JSON record directly from your terminal.
264
+
265
+ ```bash
266
+ $ mockjutsu template uuid fullname crypto_address --count 2 --locale US
267
+ ```
268
+ ```json
269
+ [
270
+ {
271
+ "uuid": "5ae780dd-1e26-4317-bc87-495eb53563aa",
272
+ "fullname": "Holly Brandt",
273
+ "crypto_address": "13gSozPBVaQMfFvVrRB7AQ3Fe6ZLDXErUh"
274
+ },
275
+ {
276
+ "uuid": "76706c3e-3eaa-4afd-a749-e4002764d275",
277
+ "fullname": "Brooke Lyons",
278
+ "crypto_address": "1GPuQvEVjYfy7C4fdxtY2Y1q76Awngsk9n"
279
+ }
280
+ ]
281
+ ```
282
+
283
+ ---
284
+
285
+ ## 🌍 6 Locales. 100% Real Algorithms.
286
+
287
+ We don't just localize names; we localize **mathematics**.
288
+
289
+ | Locale | Country | National ID | Internal Algorithm Executed |
290
+ |:---:|:---|:---|:---|
291
+ | πŸ‡ΉπŸ‡· | **TR** | TCKN | Dual MOD-10 checksum, 11 digits |
292
+ | πŸ‡ΊπŸ‡Έ | **US** | SSN / EIN | ABA Routing MOD-10 |
293
+ | πŸ‡¬πŸ‡§ | **UK** | NIN / UTR | HMRC prefix restrictions |
294
+ | πŸ‡©πŸ‡ͺ | **DE** | Steuer-ID | ISO 7064 MOD 11,10 |
295
+ | πŸ‡«πŸ‡· | **FR** | SIREN / TVA | Luhn + MOD-97 |
296
+ | πŸ‡·πŸ‡Ί | **RU** | INN / SNILS | Weighted checksum arrays, MOD-101 |
297
+
298
+ ---
299
+
300
+ ## πŸ“¦ 390 Supported Data Types
301
+
302
+ We cover everything from standard identities to complex financial market identifiers.
303
+
304
+ <details>
305
+ <summary><b>πŸ‘€ Identity & Demographic (42 types)</b></summary>
306
+ <br>
307
+ <code>tckn</code> <code>ssn</code> <code>ein</code> <code>nin</code> <code>siren</code> <code>siret</code> <code>tva</code> <code>inn</code> <code>snils</code> <code>ogrn</code> <code>passport</code> <code>license</code> +20 more
308
+ </details>
309
+
310
+ <details>
311
+ <summary><b>πŸ’³ Financial & Banking (53 types)</b></summary>
312
+ <br>
313
+ <code>cardnum</code> <code>cardnetwork</code> <code>iban</code> <code>sepa_qr</code> <code>emv_qr_p2p</code> <code>emv_qr_atm</code> <code>emv_qr_pos</code> <code>bic</code> <code>sort_code</code> +18 more
314
+ </details>
315
+
316
+ <details>
317
+ <summary><b>πŸ“‘ Telecom & IoT (19 types)</b></summary>
318
+ <br>
319
+ <code>imei</code> <code>iccid</code> <code>imsi</code> <code>msisdn</code> <code>rfid_uid</code> <code>epc</code> <code>nfc_uid</code> <code>ndef_uri</code> <code>apdu</code> <code>ir_nec</code> +10 more
320
+ </details>
321
+
322
+ <details>
323
+ <summary><b>πŸ’Ή Securities & Crypto (38 types)</b></summary>
324
+ <br>
325
+ <code>isin</code> <code>cusip</code> <code>sedol</code> <code>lei</code> <code>btc_address</code> <code>eth_address</code> <code>tx_hash</code> <code>block_hash</code>
326
+ </details>
327
+
328
+ <details>
329
+ <summary><b>πŸ“¦ E-Commerce & Barcodes (20 types)</b></summary>
330
+ <br>
331
+ <code>ean13</code> <code>upca</code> <code>isbn13</code> <code>gs1_128</code> <code>tracking_number</code> <code>sku</code> <code>order_id</code> +5 more
332
+ </details>
333
+
334
+ *(See our interactive guides for the full list of 390 types:
335
+ [πŸ‡ΉπŸ‡· TR](https://altansayan.github.io/mock-jutsu-api/HOW-TO/TR/HOW-TO-MockJutsu-TR.html) | [πŸ‡ΊπŸ‡Έ EN](https://altansayan.github.io/mock-jutsu-api/HOW-TO/EN/HOW-TO-MockJutsu-EN.html) | [πŸ‡¬πŸ‡§ UK](https://altansayan.github.io/mock-jutsu-api/HOW-TO/UK/HOW-TO-MockJutsu-UK.html) | [πŸ‡©πŸ‡ͺ DE](https://altansayan.github.io/mock-jutsu-api/HOW-TO/DE/HOW-TO-MockJutsu-DE.html) | [πŸ‡«πŸ‡· FR](https://altansayan.github.io/mock-jutsu-api/HOW-TO/FR/HOW-TO-MockJutsu-FR.html) | [πŸ‡·πŸ‡Ί RU](https://altansayan.github.io/mock-jutsu-api/HOW-TO/RU/HOW-TO-MockJutsu-RU.html))*
336
+
337
+ ---
338
+
339
+ ## 🀝 Contributing
340
+
341
+ `Mock Jutsu` thrives on community contributions. Found a checksum we're not validating? A locale we're missing? We'd love your help!
342
+
343
+ **🚨 Strict TDD & Performance Mandate**
344
+ To maintain our enterprise-grade quality, this repository mechanically enforces **Test-Driven Development (TDD)**.
345
+ - Every new generator must be fully tested mathematically.
346
+ - Every new generator must pass the `< 1.5ms` performance baseline.
347
+ - **GitHub Actions will automatically block any Pull Request that lacks passing tests.**
348
+
349
+ Please read our full **[CONTRIBUTING.md](./CONTRIBUTING.md)** guide before starting your work.
350
+
351
+ ### Quick Start for Contributors
352
+ 1. Fork the Project & clone it locally.
353
+ 2. Install the pre-push safety hook: `python scripts/setup-hooks.py`
354
+ 3. Write your test first, then implement your algorithm.
355
+ 4. Commit your changes and open a Pull Request!
356
+
357
+ ---
358
+
359
+ ## βš–οΈ Legal Disclaimer
360
+
361
+ Generated data is **entirely synthetic and for development/testing environments only.**
362
+ - Do not submit to real financial, government, or telecom production systems.
363
+ - Generated IBANs, card numbers, and national IDs are mathematically valid but **do not belong to real entities**.
364
+
365
+ <br>
366
+
367
+ ---
368
+
369
+ ## πŸ’– Support Mock Jutsu
370
+
371
+ Mock Jutsu is **free and open-source**. If it saved you hours of debugging, consider buying me a coffee β˜•
372
+
373
+ > _"Every cup of coffee = one more data type."_ πŸ₯·
374
+
375
+ | Network | Address |
376
+ |---------|---------|
377
+ | Ξ **Ethereum (ETH)** | `0x8D2fF0a795E3a19D41758Cb9b4451C39D528BbAF` |
378
+
379
+ _This section will be updated with our sponsors._
380
+
381
+ ---
382
+
383
+ <div align="center">
384
+ <h3>If mock-jutsu saved you from debugging a "valid-looking but broken" test ID, please leave a ⭐!</h3>
385
+ <p>Released under the <a href="./LICENSE">MIT License</a> β€’ Copyright Β© 2026 <a href="https://github.com/altansayan">Altan Sezer Ayan β€” A.S.A</a></p>
386
+ </div>