Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

License

NotificationsYou must be signed in to change notification settings

opendatadiscovery/oddrn-generator

Repository files navigation

PyPI version

Open Data Discovery Resource Name Generator

Helps generate oddrn for data sources.

Requirements

  • Python >= 3.7

Installation

poetry add oddrn-generator# orpip install oddrn-generator

Usage and configuration

Available generators

DataSourceGenerator class name
cassandraCassandraGenerator
postgresqlPostgresqlGenerator
mysqlMysqlGenerator
glueGlueGenerator
s3S3Generator
kafkaKafkaGenerator
kafkaconnectKafkaConnectGenerator
snowflakeSnowflakeGenerator
airflowAirflowGenerator
hiveHiveGenerator
dynamodbDynamodbGenerator
odbcOdbcGenerator
mssqlMssqlGenerator
oracleOracleGenerator
redshiftRedshiftGenerator
clickhouseClickHouseGenerator
athenaAthenaGenerator
quicksightQuicksightGenerator
dbtDbtGenerator
prefectPrefectGenerator
tableauTableauGenerator
neo4jNeo4jGenerator
mongodbMongoGenerator
verticaVerticaGenerator
CubeJsCubeJsGenerator
supersetSupersetGenerator
PrestoPrestoGenerator
TrinoTrinoGenerator
dmsDmsGenerator
powerbiPowerBiGenerator

Generator properties

  • base_oddrn - Get base oddrn (without path)
  • available_paths - Get all available path of generator

Generator methods

  • get_oddrn_by_path(path_name, new_value=None) - Get oddrn string by path. You also can set value for this path using 'new_value' param
  • set_oddrn_paths(**kwargs) - Set or update values of oddrn path
  • get_data_source_oddrn() - Get data source oddrn

Generator parameters:

  • host_settings: str - optional. Hostname configuration
  • cloud_settings: dict - optional. Cloud configuration
  • **kwargs - path's name and values

Example usage

# postgresqlfromoddrn_generatorimportPostgresqlGeneratoroddrn_gen=PostgresqlGenerator(host_settings='my.host.com:5432',schemas='schema_name',databases='database_name',tables='table_name')print(oddrn_gen.base_oddrn)# //postgresql/host/my.host.com:5432print(oddrn_gen.available_paths)# ('databases', 'schemas', 'tables', 'views', 'tables_columns', 'views_columns', 'relationships')print(oddrn_gen.get_data_source_oddrn())# //postgresql/host/my.host.com:5432/databases/database_nameprint(oddrn_gen.get_oddrn_by_path("schemas"))# //postgresql/host/my.host.com:5432/databases/database_name/schemas/schema_nameprint(oddrn_gen.get_oddrn_by_path("databases"))# //postgresql/host/my.host.com:5432/databases/database_nameprint(oddrn_gen.get_oddrn_by_path("tables"))# //postgresql/host/my.host.com:5432/databases/database_name/schemas/schema_name/tables/table_name# you can set or change path:oddrn_gen.set_oddrn_paths(tables="another_table_name",tables_columns="new_column_name")print(oddrn_gen.get_oddrn_by_path("tables_columns"))# //postgresql/host/my.host.com:5432/databases/database_name/schemas/schema_name/tables/another_table_name/columns/new_column_nameoddrn_gen.set_oddrn_paths(relationships="references_table_2_with_constraint_fk")print(oddrn_gen.get_oddrn_by_path("relationships"))# //postgresql/host/my.host.com:5432/databases/database_name/schemas/schema_name/tables/another_table_name/relationships/references_table_2_with_constraint_fk# you can get path wih new values:print(oddrn_gen.get_oddrn_by_path("tables_columns",new_value="another_new_column_name"))# //postgresql/host/my.host.com:5432/databases/database_name/schemas/schema_name/tables/another_table_name/columns/another_new_column_name# gluefromoddrn_generatorimportGlueGeneratoroddrn_gen=GlueGenerator(cloud_settings={'account':'acc_id','region':'reg_id'},databases='database_name',tables='table_name',columns='column_name',jobs='job_name',runs='run_name',owners='owner_name')print(oddrn_gen.available_paths)# ('databases', 'tables', 'columns', 'owners', 'jobs', 'runs')print(oddrn_gen.get_oddrn_by_path("databases"))# //glue/cloud/aws/account/acc_id/region/reg_id/databases/database_nameprint(oddrn_gen.get_oddrn_by_path("tables"))# //glue/cloud/aws/account/acc_id/region/reg_id/databases/database_name/tables/table_name'print(oddrn_gen.get_oddrn_by_path("columns"))# //glue/cloud/aws/account/acc_id/region/reg_id/databases/database_name/tables/table_name/columns/column_nameprint(oddrn_gen.get_oddrn_by_path("jobs"))# //glue/cloud/aws/account/acc_id/region/reg_id/jobs/job_nameprint(oddrn_gen.get_oddrn_by_path("runs"))# //glue/cloud/aws/account/acc_id/region/reg_id/jobs/job_name/runs/run_nameprint(oddrn_gen.get_oddrn_by_path("owners"))# //glue/cloud/aws/account/acc_id/region/reg_id/owners/owner_name

Exceptions

  • WrongPathOrderException - raises when trying set path that depends on another path
fromoddrn_generatorimportPostgresqlGeneratoroddrn_gen=PostgresqlGenerator(host_settings='my.host.com:5432',schemas='schema_name',databases='database_name',tables_columns='column_without_table')# WrongPathOrderException: 'tables_columns' can not be without 'tables' attribute
  • EmptyPathValueException - raises when trying to get a path that is not set up
fromoddrn_generatorimportPostgresqlGeneratoroddrn_gen=PostgresqlGenerator(host_settings='my.host.com:5432',schemas='schema_name',databases='database_name',)oddrn_gen.get_oddrn_by_path("tables")# EmptyPathValueException: Path 'tables' is not set up
  • PathDoestExistException - raises when trying to get not existing oddrn path
fromoddrn_generatorimportPostgresqlGeneratoroddrn_gen=PostgresqlGenerator(host_settings='my.host.com:5432',schemas='schema_name',databases='database_name',)oddrn_gen.get_oddrn_by_path("jobs")# PathDoestExistException: Path 'jobs' doesn't exist in generator

Development

#Install dependenciespoetry install#Activate shellpoetry shell# Run testspytest tests/

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp