scparser
Документация на русском
Extend argparse with flexible subcommand parser inheritance.
Features
- Create subcommands that inherit from existing parsers
- Reuse parser configurations across multiple subcommands
- Clean, intuitive API extending standard
argparse
Installation
pip install scparser
Quick Start
from scparser import SubcommandsParser
import argparse
# Create base parser with common options
base_parser = argparse.ArgumentParser(add_help=False)
base_parser.add_argument('--verbose', '-v', action='store_true')
# Create main parser
parser = SubcommandsParser()
subparsers = parser.add_subparsers(dest='command', required=True)
# Add subcommands that inherit from base_parser
start_cmd = subparsers.add_parser('start', parser=base_parser, help='Start service')
start_cmd.add_argument('service', help='Service name')
stop_cmd = subparsers.add_parser('stop', parser=base_parser, help='Stop service')
stop_cmd.add_argument('service', help='Service name')
# Parse arguments
args = parser.parse_args(['--verbose', 'start', 'web'])
print(f"Command: {args.command}, Verbose: {args.verbose}, Service: {args.service}")
API Reference
SubcommandsParser
Subclass of argparse.ArgumentParser that enables parser inheritance for subcommands.
SubcommandsAction
Custom action that handles subcommand registration with parser inheritance.
Usage with custom parsers
import argparse
from scparser import SubcommandsParser
# Use parser class instead of instance
class MyBaseParser(argparse.ArgumentParser):
def __init__(self):
super().__init__(add_help=False)
self.add_argument('--config', required=True)
parser = SubcommandsParser()
subparsers = parser.add_subparsers()
subparsers.add_parser('run', parser=MyBaseParser, help='Run command')
Requirements
- Python 3.9 or higher
License
MIT
Contributing
Issues and pull requests are welcome!
scparser
English documentation
Расширение argparse с гибким наследованием парсеров для подкоманд.
Возможности
- Создание подкоманд, которые наследуют существующие парсеры
- Повторное использование конфигураций парсеров для нескольких подкоманд
- Чистый, интуитивно понятный API, расширяющий стандартный
argparse
Установка
pip install scparser
Быстрый старт
from scparser import SubcommandsParser
import argparse
# Создание базового парсера с общими опциями
base_parser = argparse.ArgumentParser(add_help=False)
base_parser.add_argument('--verbose', '-v', action='store_true')
# Создание главного парсера
parser = SubcommandsParser()
subparsers = parser.add_subparsers(dest='command', required=True)
# Добавление подкоманд, наследующих base_parser
start_cmd = subparsers.add_parser('start', parser=base_parser, help='Запустить сервис')
start_cmd.add_argument('service', help='Название сервиса')
stop_cmd = subparsers.add_parser('stop', parser=base_parser, help='Остановить сервис')
stop_cmd.add_argument('service', help='Название сервиса')
# Разбор аргументов
args = parser.parse_args(['--verbose', 'start', 'web'])
print(f"Команда: {args.command}, Подробно: {args.verbose}, Сервис: {args.service}")
Справочник по API
SubcommandsParser
Подкласс argparse.ArgumentParser, обеспечивающий наследование парсеров для подкоманд.
SubcommandsAction
Пользовательское действие, обрабатывающее регистрацию подкоманд с наследованием парсеров.
Использование с пользовательскими парсерами
import argparse
from scparser import SubcommandsParser
# Использование класса парсера вместо экземпляра
class MyBaseParser(argparse.ArgumentParser):
def __init__(self):
super().__init__(add_help=False)
self.add_argument('--config', required=True)
parser = SubcommandsParser()
subparsers = parser.add_subparsers()
subparsers.add_parser('run', parser=MyBaseParser, help='Выполнить команду')
Требования
- Python 3.9 или выше
Лицензия
MIT
Участие в разработке
Приветствуются вопросы и pull request'ы!
Metadata
Release files for scparser 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scparser-0.1.2.tar.gz | 3.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scparser-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.0 kB
Release files / scparser-0.1.2.tar.gz
| Download URL | scparser-0.1.2.tar.gz |
|---|---|
| Size | 3.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d76618ce6e6b547ef13626da449d709bae3ea57abe938c5f4572deaeb00df5c
|
|
BLAKE2b-256 checksum How to use checksums |
08ace16e78a52d452036032949ee95a61b2e4f753628169b274f5b30ad80354b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / scparser-0.1.2-py3-none-any.whl
| Download URL | scparser-0.1.2-py3-none-any.whl |
|---|---|
| Size | 3.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
876263155bbd429e09f7b74420bfc76460c8543a254fa494cbf4ec491053e431
|
|
BLAKE2b-256 checksum How to use checksums |
6b09f09d80b4ebb91b14825897b22a0191c10e8923aa5b4186aad295e089c132
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|