Skip to content

Commit f5d818b

Browse files
authored
Merge pull request #13 from lexakimov/feature
2 parents 77ee931 + 86ac055 commit f5d818b

16 files changed

+346
-156
lines changed

CONFIGURATION.md

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,6 @@ xmlgenerator -c config.yml --pretty examples/employee.xsd
347347
<age>27</age>
348348
</employee>
349349
```
350-
*Note: To generate Russian-language data, you may need to specify the locale, for example: `xmlgenerator -l ru_RU ...`*
351350

352351
*A full list of available functions is provided in [Appendix 2](#appendix-2-placeholder-functions)*.
353352

@@ -571,31 +570,35 @@ In the `value_override` sections, you can specify either a string value or speci
571570

572571
**List of Placeholder Functions:**
573572

574-
| Function | Description |
575-
|------------------------------------|-------------------------------------------------------------------------------------------------|
576-
| `source_filename` | Filename of the source XSD schema with its extension (e.g., `schema.xsd`). |
577-
| `source_extracted` | A string extracted from the source XSD filename using the regex specified in `source_filename`. |
578-
| `output_filename` | String defined by the `output_filename` configuration parameter. |
579-
| `uuid` | A random UUIDv4. |
580-
| `regex("pattern")` | A random string value matching the specified regular expression. |
581-
| `any('A', "B", C)` | A random value from the provided enumeration. |
582-
| `number(A, B)` | A random number between A and B. |
583-
| `date("2010-01-01", "2025-01-01")` | A random date within the specified range. |
584-
| `last_name` | A random last name. |
585-
| `first_name` | A random first name. |
586-
| `middle_name` | A random middle name. |
587-
| `address_text` | A random full address. |
588-
| `administrative_unit` | An administrative unit (e.g., a district). |
589-
| `house_number` | A house number. |
590-
| `city_name` | A city name. |
591-
| `postcode` | A postal code. |
592-
| `company_name` | A company name. |
593-
| `bank_name` | A bank name. |
594-
| `phone_number` | A phone number. |
595-
| `inn_fl` | Taxpayer Identification Number (for an individual). |
596-
| `inn_ul` | Taxpayer Identification Number (for a legal entity). |
597-
| `ogrn_ip` | Primary State Registration Number (for an individual entrepreneur). |
598-
| `ogrn_fl` | Primary State Registration Number (for an individual). |
599-
| `kpp` | Tax Registration Reason Code (KPP). |
600-
| `snils_formatted` | SNILS (Personal Insurance Account Number) formatted as `123-456-789 90`. |
601-
| `email` | A random email address. |
573+
| Function | Description |
574+
|------------------------------------|----------------------------------------------------------------------------------------------------------|
575+
| `source_filename` | Filename of the source XSD schema with its extension (e.g., `schema.xsd`). |
576+
| `source_extracted` | A string extracted from the source XSD filename using the regex specified in `source_filename`. |
577+
| `output_filename` | String defined by the `output_filename` configuration parameter. |
578+
| `uuid` | A random UUIDv4. |
579+
| `regex("pattern")` | A random string value matching the specified regular expression. |
580+
| `any('A', "B", C)` | A random value from the provided enumeration. |
581+
| `any_from('./values.txt')` | A random value from a multi-line file |
582+
| `number(A, B)` | A random number between A and B. |
583+
| `date("2010-01-01", "2025-01-01")` | A random date within the specified range. <tr><td colspan="2" align="center">**Personal data**</td></tr> |
584+
| `first_name`__*__ | A random first name. |
585+
| `last_name`__*__ | A random last name. |
586+
| `middle_name`__*__ | A random middle name. |
587+
| `phone_number`__*__ | A phone number. |
588+
| `email`__*__ | A random email address. <tr><td colspan="2" align="center">**Address**</td></tr> |
589+
| `country`__*__ | A random country. |
590+
| `city`__*__ | A random city name. |
591+
| `street`__*__ | A random street. |
592+
| `house_number`__*__ | A house number. |
593+
| `postcode`__*__ | A postal code. |
594+
| `administrative_unit`__*__ | An administrative unit (e.g., a district). |
595+
| `company_name`__*__ | A company name. |
596+
| `bank_name`__*__ | A bank name. <tr><td colspan="2" align="center">**Russian locale only `ru_RU`**</td></tr> |
597+
| `inn_fl` | Taxpayer Identification Number (for an individual). |
598+
| `inn_ul` | Taxpayer Identification Number (for a legal entity). |
599+
| `ogrn_ip` | Primary State Registration Number (for an individual entrepreneur). |
600+
| `ogrn_fl` | Primary State Registration Number (for an individual). |
601+
| `kpp` | Tax Registration Reason Code (KPP). |
602+
| `snils_formatted` | SNILS (Personal Insurance Account Number) formatted as `123-456-789 90`. |
603+
604+
\* It's available to set custom locale via `func("ru_RU")`. Default locale is `en_US`</td></tr>

CONFIGURATION_RU.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ xmlgenerator -c config.yml --pretty examples/employee.xsd
348348
<age>27</age>
349349
</employee>
350350
```
351-
*Примечание: для генерации русскоязычных данных может потребоваться указать локаль, например: `xmlgenerator -l ru_RU ...`*
352351

353352
*Полный список доступных функций приведен в [Приложении 2](#приложение-2-подстановочные-функции)*.
354353

@@ -579,23 +578,27 @@ specific:
579578
| `uuid` | Случайный UUIDv4 |
580579
| `regex("pattern")` | Случайное строковое значение по указанному регулярному выражению |
581580
| `any('A', "B", C)` | Случайное значение из перечисленных |
581+
| `any_from('./values.txt')` | Случайное значение из многострочного файла |
582582
| `number(A, B)` | Случайное число от A до B |
583-
| `date("2010-01-01", "2025-01-01")` | Случайная дата в указанном диапазоне |
584-
| `last_name` | Фамилия |
585-
| `first_name` | Имя |
586-
| `middle_name` | Отчество |
587-
| `address_text` | Адрес |
588-
| `administrative_unit` | Район |
589-
| `house_number` | Номер дома |
590-
| `city_name` | Город |
591-
| `postcode` | Почтовый индекс |
592-
| `company_name` | Наименование компании |
593-
| `bank_name` | Наименование банка |
594-
| `phone_number` | Номер телефона |
583+
| `date("2010-01-01", "2025-01-01")` | Случайная дата в указанном диапазоне <tr><td colspan="2" align="center">**Персональные данные**</td></tr> |
584+
| `first_name`__*__ | Имя |
585+
| `last_name`__*__ | Фамилия |
586+
| `middle_name`__*__ | Отчество |
587+
| `phone_number`__*__ | Номер телефона |
588+
| `email`__*__ | Случайный адрес электронной почты <tr><td colspan="2" align="center">**Адреса**</td></tr> |
589+
| `country`__*__ | Страна |
590+
| `city`__*__ | Город |
591+
| `street`__*__ | Улица |
592+
| `house_number`__*__ | Номер дома |
593+
| `postcode`__*__ | Почтовый индекс |
594+
| `administrative_unit`__*__ | Район |
595+
| `company_name`__*__ | Наименование компании |
596+
| `bank_name`__*__ | Наименование банка <tr><td colspan="2" align="center">**Только русская локаль `ru_RU`**</td></tr> |
595597
| `inn_fl` | ИНН физического лица |
596598
| `inn_ul` | ИНН юридического лица |
597599
| `ogrn_ip` | ОГРН индивидуального предпринимателя |
598600
| `ogrn_fl` | ОГРН физического лица |
599601
| `kpp` | КПП |
600602
| `snils_formatted` | СНИЛС в формате `123-456-789 90` |
601-
| `email` | Случайный адрес электронной почты |
603+
604+
\* Можно указать локаль через `func("ru_RU")`. По-умолчанию: `en_US`</td></tr>

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ The generator command is `xmlgenerator`
4444
**Flags and parameters:**
4545

4646
```
47-
usage: xmlgenerator [-h] [-c <config.yml>] [-l <locale>] [-o <output.xml>] [-p] [-v <validation>] [-ff] [-e <encoding>]
48-
[-s <seed>] [-d] [-V] [-C <shell>]
47+
usage: xmlgenerator [-h] [-c <config.yml>] [-o <output.xml>] [-p] [-v <validation>] [-ff] [-e <encoding>] [-s <seed>]
48+
[-d] [-V] [-C <shell>]
4949
xsd [xsd ...]
5050
5151
Generates XML documents from XSD schemas
@@ -56,7 +56,6 @@ positional arguments:
5656
options:
5757
-h, --help show this help message and exit
5858
-c, --config <config.yml> pass a YAML configuration file
59-
-l, --locale <locale> locale for the randomizer (default: en_US)
6059
-o, --output <output.xml> save the output to a directory or file
6160
-p, --pretty prettify the output XML
6261
-v, --validation <validation> validate the generated XML document (none, schema, schematron; default: schema)

README_RU.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ xmlgenerator -C bash | sudo tee /etc/bash_completion.d/xmlgenerator
4444
**Описание флагов и параметров запуска:**
4545

4646
```
47-
usage: xmlgenerator [-h] [-c <config.yml>] [-l <locale>] [-o <output.xml>] [-p] [-v <validation>] [-ff] [-e <encoding>]
48-
[-s <seed>] [-d] [-V] [-C <shell>]
47+
usage: xmlgenerator [-h] [-c <config.yml>] [-o <output.xml>] [-p] [-v <validation>] [-ff] [-e <encoding>] [-s <seed>]
48+
[-d] [-V] [-C <shell>]
4949
xsd [xsd ...]
5050
5151
Generates XML documents from XSD schemas
@@ -56,7 +56,6 @@ positional arguments:
5656
options:
5757
-h, --help show this help message and exit
5858
-c, --config <config.yml> pass a YAML configuration file
59-
-l, --locale <locale> locale for the randomizer (default: en_US)
6059
-o, --output <output.xml> save the output to a directory or file
6160
-p, --pretty prettify the output XML
6261
-v, --validation <validation> validate the generated XML document (none, schema, schematron; default: schema)

build_native.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import sys
55
import time
66

7+
from xmlgenerator import __version__
8+
79
# TODO strip
810
# pyinstaller ?
911
# sudo pacman -S ccache
@@ -41,7 +43,7 @@
4143
# "--include-package=some_package",
4244

4345
"--product-name=xmlgenerator",
44-
"--product-version=0.1.0",
46+
f"--product-version={__version__}",
4547
f"--file-version={file_ver}",
4648
"--onefile-tempdir-spec={CACHE_DIR}/{PRODUCT}/{VERSION}",
4749

config_fns.yml

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,28 @@ global:
1414

1515
value_override:
1616
"^(ИдФайл|FileID)$": "{{ output_filename }}"
17-
"^(ВерсПрог|VersProg)$": "xmlgenerator 0.1.0"
18-
"Фамилия": "{{ last_name }}"
19-
"Имя": "{{ first_name }}"
20-
"Отчество": "{{ middle_name }}"
21-
"АдрТекст": "{{ address_text }}"
22-
"Район": "{{ administrative_unit }}"
23-
"Дом": "{{ house_number }}"
24-
"Город": "{{ city_name }}"
25-
"Индекс": "{{ postcode }}"
26-
"НаимОрг": "{{ company_name }}"
27-
"НаимБанк": "{{ bank_name }}"
28-
"Тлф": "{{ phone_number }}"
17+
"^(ВерсПрог|VersProg)$": "xmlgenerator 0.6.0"
18+
"Фамилия": "{{ last_name('ru_RU') }}"
19+
"Имя": "{{ first_name('ru_RU') }}"
20+
"Отчество": "{{ middle_name('ru_RU') }}"
21+
"АдрТекст": "{{ city('ru_RU') }}, {{ street('ru_RU') }}, д. {{ house_number('ru_RU') }}, кв. {{ number(1, 100) }}"
22+
"Район": "{{ administrative_unit('ru_RU') }}"
23+
"Дом": "{{ house_number('ru_RU') }}"
24+
"Город": "{{ city('ru_RU') }}"
25+
"Корпус": "{{ number(1, 20) }}"
26+
"Кварт": "{{ number(1, 200) }}"
27+
"Улица": "{{ street('ru_RU') }}"
28+
"Индекс": "{{ postcode('ru_RU') }}"
29+
"НаимОрг": "{{ company_name('ru_RU') }}"
30+
"НаимБанк": "{{ bank_name('ru_RU') }}"
31+
"Тлф": "{{ phone_number('ru_RU') }}"
2932
"ИННФЛ": "{{ inn_fl }}"
3033
"ИННЮЛ": "{{ inn_ul }}"
3134
"^ОГРНИП$": "{{ ogrn_ip }}"
3235
"^ОГРН$": "{{ ogrn_fl }}"
3336
"КПП": "{{ kpp }}"
3437
"СНИЛС": "{{ snils_formatted }}"
35-
"ЭлПочта": "{{ email }}"
38+
"ЭлПочта": "{{ email('ru_RU') }}"
3639

3740
specific:
3841
".*":

setup.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
from setuptools import setup, find_packages
22

3+
from xmlgenerator import __version__
4+
35
setup(
46
name='xmlgenerator',
5-
version='0.5.3',
7+
version=__version__,
68
packages=find_packages(exclude=("tests", "tests.*")),
79
entry_points={
810
'console_scripts': [

0 commit comments

Comments
 (0)