maisaedu-poormans-dms 1.1.89__tar.gz → 1.1.91__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 (58) hide show
  1. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/PKG-INFO +1 -1
  2. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Services/AdapterSourceTarget.py +13 -0
  3. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Writer/GenericWriter.py +3 -3
  4. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Writer/WriterCDC.py +2 -3
  5. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms.egg-info/PKG-INFO +1 -1
  6. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/setup.py +1 -1
  7. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/LICENSE +0 -0
  8. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/__init__.py +0 -0
  9. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorInterface.py +0 -0
  10. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorRowInterface.py +0 -0
  11. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorRowReaderInterface.py +0 -0
  12. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorRowWriterInterface.py +0 -0
  13. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorTableInterface.py +0 -0
  14. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Contracts/__init__.py +0 -0
  15. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/Migrator.py +0 -0
  16. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/MigratorRow/MigratorRow.py +0 -0
  17. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/MigratorRow/Reader.py +0 -0
  18. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/MigratorRow/Writer.py +0 -0
  19. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/MigratorRow/__init__.py +0 -0
  20. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/MigratorTable.py +0 -0
  21. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/postgres_migration/__init__.py +0 -0
  22. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/Connector.py +0 -0
  23. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/DynamoReplicator.py +0 -0
  24. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/Writer/WriterCDC.py +0 -0
  25. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/Writer/WriterFull.py +0 -0
  26. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/Writer/__init__.py +0 -0
  27. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/__init__.py +0 -0
  28. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/models/Struct.py +0 -0
  29. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/models/__init__.py +0 -0
  30. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/services/Struct.py +0 -0
  31. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_dynamo_migration/services/__init__.py +0 -0
  32. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Connector.py +0 -0
  33. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Contracts/ReaderInterface.py +0 -0
  34. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Contracts/WriterInterface.py +0 -0
  35. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Contracts/__init__.py +0 -0
  36. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Logger.py +0 -0
  37. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/MigratorRedshift.py +0 -0
  38. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Models/ExtractionOperation.py +0 -0
  39. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Models/Struct.py +0 -0
  40. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Models/__init__.py +0 -0
  41. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Reader/GenericReader.py +0 -0
  42. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Reader/PostgresReader.py +0 -0
  43. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Reader/SQLServerReader.py +0 -0
  44. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Reader/__init__.py +0 -0
  45. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Services/ExtractionOperation.py +0 -0
  46. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Services/RelationExtraction.py +0 -0
  47. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Services/Struct.py +0 -0
  48. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Services/__init__.py +0 -0
  49. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Types.py +0 -0
  50. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Writer/WriterNonCDC.py +0 -0
  51. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/Writer/__init__.py +0 -0
  52. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/redshift_migration/__init__.py +0 -0
  53. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms/sql_server_migration.py +0 -0
  54. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms.egg-info/SOURCES.txt +0 -0
  55. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms.egg-info/dependency_links.txt +0 -0
  56. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms.egg-info/requires.txt +0 -0
  57. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/maisaedu_poormans_dms.egg-info/top_level.txt +0 -0
  58. {maisaedu-poormans-dms-1.1.89 → maisaedu-poormans-dms-1.1.91}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: maisaedu-poormans-dms
3
- Version: 1.1.89
3
+ Version: 1.1.91
4
4
  Summary: A library for making database migration tasks, for +A Education
5
5
  Home-page: UNKNOWN
6
6
  Author: A+ Educação
@@ -22,6 +22,19 @@ class AdapterSourceTarget:
22
22
  def __init__(self, struct):
23
23
  self.struct = struct
24
24
 
25
+ def order_by_cdc(self, op, df):
26
+ if op == "U":
27
+ if "cdc_datetime" not in df.columns:
28
+ return df
29
+ else:
30
+ if df['cdc_datetime'].isnull().any():
31
+ return df
32
+ else:
33
+ df = df.sort_values('cdc_datetime', ascending=True)
34
+ return df
35
+ else:
36
+ return df
37
+
25
38
  def convert_types(self, df):
26
39
  for c in self.struct.columns:
27
40
  case_target_type = {
@@ -26,15 +26,15 @@ class GenericWriter:
26
26
  )
27
27
 
28
28
  def create_table_temp_target_relation_to_remove_dups(self):
29
- pk_columns = ", ".join(self.struct.columns_upsert)
29
+ pk_columns = ', '.join(f'"{self.struct.columns_upsert}"')
30
30
 
31
31
  self.target_cursor.execute(
32
32
  f"""
33
33
  create temp table {self.temp_target_relation} as (
34
34
  SELECT distinct a.* FROM {self.target_relation} as a
35
35
  join (
36
- SELECT "{pk_columns}", count(*) FROM {self.target_relation}
37
- group by "{pk_columns}" having count(*) > 1
36
+ SELECT {pk_columns}, count(*) FROM {self.target_relation}
37
+ group by {pk_columns} having count(*) > 1
38
38
  ) as subselect
39
39
  on 1=1
40
40
  {self.create_statement_comparison_pk_columns('subselect', 'a')}
@@ -17,14 +17,13 @@ class WriterCDC(GenericWriter, WriterInterface):
17
17
  df = self.get_op_rows(df, op=op)
18
18
  adapter = AdapterSourceTarget(self.struct)
19
19
  df = adapter.convert_types(df)
20
+ df = adapter.order_by_cdc(op, df)
20
21
  df = adapter.transform_data(df)
21
22
  df = adapter.equalize_number_columns(df)
22
23
 
23
24
  if df.empty is False:
24
25
  if op == "U":
25
- df = df.drop_duplicates(
26
- subset=self.struct.columns_upsert, keep="last"
27
- )
26
+ df = df.drop_duplicates(subset=self.struct.columns_upsert, keep="last")
28
27
 
29
28
  buffer = io.BytesIO()
30
29
  df.to_csv(buffer, index=False)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: maisaedu-poormans-dms
3
- Version: 1.1.89
3
+ Version: 1.1.91
4
4
  Summary: A library for making database migration tasks, for +A Education
5
5
  Home-page: UNKNOWN
6
6
  Author: A+ Educação
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="maisaedu-poormans-dms",
5
- version="1.1.89",
5
+ version="1.1.91",
6
6
  description="A library for making database migration tasks, for +A Education",
7
7
  license="MIT License",
8
8
  author="A+ Educação",