Add typer equivalents for rattail
commands
This commit is contained in:
parent
93c7b254a3
commit
ea147e8c0d
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2023 Lance Edgar
|
# Copyright © 2010-2024 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -24,11 +24,101 @@
|
||||||
Rattail Commands
|
Rattail Commands
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from rattail import commands
|
import typer
|
||||||
from rattail.util import load_object
|
from typing_extensions import Annotated
|
||||||
|
|
||||||
|
from corepos.enum import CoreDbType
|
||||||
|
|
||||||
|
from rattail.commands import rattail_typer
|
||||||
|
from rattail.commands.typer import importer_command, file_importer_command, typer_get_runas_user
|
||||||
|
from rattail.commands.importing import (ImportSubcommand, ImportFileSubcommand,
|
||||||
|
ImportCommandHandler)
|
||||||
|
|
||||||
|
|
||||||
class ExportCore(commands.ImportSubcommand):
|
@rattail_typer.command()
|
||||||
|
@file_importer_command
|
||||||
|
def corepos_import_square(
|
||||||
|
ctx: typer.Context,
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Import transaction data from Square into CORE
|
||||||
|
"""
|
||||||
|
config = ctx.parent.rattail_config
|
||||||
|
progress = ctx.parent.rattail_progress
|
||||||
|
handler = ImportCommandHandler(
|
||||||
|
config, import_handler_key='to_corepos_db_office_trans.from_square_csv.import')
|
||||||
|
kwargs['user'] = typer_get_runas_user(ctx)
|
||||||
|
handler.run(kwargs, progress=progress)
|
||||||
|
|
||||||
|
|
||||||
|
@rattail_typer.command()
|
||||||
|
@importer_command
|
||||||
|
def export_corepos(
|
||||||
|
ctx: typer.Context,
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Export data from Rattail to CORE-POS
|
||||||
|
"""
|
||||||
|
config = ctx.parent.rattail_config
|
||||||
|
progress = ctx.parent.rattail_progress
|
||||||
|
handler = ImportCommandHandler(
|
||||||
|
config, import_handler_key='to_corepos_api.from_rattail.export')
|
||||||
|
kwargs['user'] = typer_get_runas_user(ctx)
|
||||||
|
handler.run(kwargs, progress=progress)
|
||||||
|
|
||||||
|
|
||||||
|
@rattail_typer.command()
|
||||||
|
@importer_command
|
||||||
|
def import_corepos_api(
|
||||||
|
ctx: typer.Context,
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Import data from a CORE POS API
|
||||||
|
"""
|
||||||
|
config = ctx.parent.rattail_config
|
||||||
|
progress = ctx.parent.rattail_progress
|
||||||
|
handler = ImportCommandHandler(
|
||||||
|
config, import_handler_key='to_rattail.from_corepos_api.import')
|
||||||
|
kwargs['user'] = typer_get_runas_user(ctx)
|
||||||
|
handler.run(kwargs, progress=progress)
|
||||||
|
|
||||||
|
|
||||||
|
@rattail_typer.command()
|
||||||
|
@importer_command
|
||||||
|
def import_corepos_db(
|
||||||
|
ctx: typer.Context,
|
||||||
|
corepos_dbtype: Annotated[
|
||||||
|
CoreDbType,
|
||||||
|
typer.Option(help="Type of CORE-POS DB engine to be used as data host. "
|
||||||
|
"This determines which config section is used with regard "
|
||||||
|
"to the --corepos-dbkey arg.")] = 'office_op',
|
||||||
|
corepos_dbkey: Annotated[
|
||||||
|
str,
|
||||||
|
typer.Option(help="Config key for CORE POS database engine to be used as "
|
||||||
|
"the \"host\", i.e. the source of the data to be imported. "
|
||||||
|
"This key must be defined in the [rattail_corepos.db] section "
|
||||||
|
"of your config file.")] = 'default',
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Import data from a CORE POS database
|
||||||
|
"""
|
||||||
|
config = ctx.parent.rattail_config
|
||||||
|
progress = ctx.parent.rattail_progress
|
||||||
|
handler = ImportCommandHandler(
|
||||||
|
config, import_handler_key='to_rattail.from_corepos_db_office_op.import')
|
||||||
|
kwargs['user'] = typer_get_runas_user(ctx)
|
||||||
|
kwargs['handler_kwargs'] = {
|
||||||
|
'corepos_dbtype': corepos_dbtype,
|
||||||
|
'corepos_dbkey': corepos_dbkey,
|
||||||
|
}
|
||||||
|
handler.run(kwargs, progress=progress)
|
||||||
|
|
||||||
|
|
||||||
|
class ExportCore(ImportSubcommand):
|
||||||
"""
|
"""
|
||||||
Export data from Rattail to CORE-POS
|
Export data from Rattail to CORE-POS
|
||||||
"""
|
"""
|
||||||
|
@ -37,7 +127,7 @@ class ExportCore(commands.ImportSubcommand):
|
||||||
handler_key = 'to_corepos_api.from_rattail.export'
|
handler_key = 'to_corepos_api.from_rattail.export'
|
||||||
|
|
||||||
|
|
||||||
class ImportCOREPOSAPI(commands.ImportSubcommand):
|
class ImportCOREPOSAPI(ImportSubcommand):
|
||||||
"""
|
"""
|
||||||
Import data from a CORE POS API
|
Import data from a CORE POS API
|
||||||
"""
|
"""
|
||||||
|
@ -46,7 +136,7 @@ class ImportCOREPOSAPI(commands.ImportSubcommand):
|
||||||
handler_key = 'to_rattail.from_corepos_api.import'
|
handler_key = 'to_rattail.from_corepos_api.import'
|
||||||
|
|
||||||
|
|
||||||
class ImportCOREPOSDB(commands.ImportSubcommand):
|
class ImportCOREPOSDB(ImportSubcommand):
|
||||||
"""
|
"""
|
||||||
Import data from a CORE POS database
|
Import data from a CORE POS database
|
||||||
"""
|
"""
|
||||||
|
@ -76,7 +166,7 @@ class ImportCOREPOSDB(commands.ImportSubcommand):
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
|
|
||||||
class CoreImportSquare(commands.ImportFromCSV):
|
class CoreImportSquare(ImportFileSubcommand):
|
||||||
"""
|
"""
|
||||||
Import transaction data from Square into CORE
|
Import transaction data from Square into CORE
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -25,13 +25,14 @@ CORE Office commands
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
from enum import Enum
|
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from requests.auth import HTTPDigestAuth
|
from requests.auth import HTTPDigestAuth
|
||||||
import typer
|
import typer
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
|
|
||||||
|
from corepos.enum import CoreDbType
|
||||||
|
|
||||||
from rattail.commands.typer import (make_typer, typer_eager_imports,
|
from rattail.commands.typer import (make_typer, typer_eager_imports,
|
||||||
importer_command, typer_get_runas_user,
|
importer_command, typer_get_runas_user,
|
||||||
file_importer_command, file_exporter_command)
|
file_importer_command, file_exporter_command)
|
||||||
|
@ -41,12 +42,6 @@ from rattail_corepos.config import core_office_url
|
||||||
from rattail_corepos.corepos.office.util import get_fannie_config_value, get_blueline_template, make_blueline
|
from rattail_corepos.corepos.office.util import get_fannie_config_value, get_blueline_template, make_blueline
|
||||||
|
|
||||||
|
|
||||||
class CoreDbType(str, Enum):
|
|
||||||
office_op = 'office_op'
|
|
||||||
office_trans = 'office_trans'
|
|
||||||
office_arch = 'office_arch'
|
|
||||||
|
|
||||||
|
|
||||||
core_office_typer = make_typer(
|
core_office_typer = make_typer(
|
||||||
name='core_office',
|
name='core_office',
|
||||||
help="core-office -- command line interface for CORE Office"
|
help="core-office -- command line interface for CORE Office"
|
||||||
|
|
|
@ -49,6 +49,9 @@ rattail.subcommands =
|
||||||
import-corepos-api = rattail_corepos.commands:ImportCOREPOSAPI
|
import-corepos-api = rattail_corepos.commands:ImportCOREPOSAPI
|
||||||
import-corepos-db = rattail_corepos.commands:ImportCOREPOSDB
|
import-corepos-db = rattail_corepos.commands:ImportCOREPOSDB
|
||||||
|
|
||||||
|
rattail.typer_imports =
|
||||||
|
rattail_corepos = rattail_corepos.commands
|
||||||
|
|
||||||
rattail.emails =
|
rattail.emails =
|
||||||
rattail_corepos = rattail_corepos.emails
|
rattail_corepos = rattail_corepos.emails
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue