execsql2 2.22.8__py3-none-any.whl → 2.22.9__py3-none-any.whl

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 (22) hide show
  1. execsql/data/execsql.conf.template +1 -0
  2. execsql/utils/mail.py +9 -5
  3. {execsql2-2.22.8.dist-info → execsql2-2.22.9.dist-info}/METADATA +2 -2
  4. {execsql2-2.22.8.dist-info → execsql2-2.22.9.dist-info}/RECORD +22 -22
  5. {execsql2-2.22.8.dist-info → execsql2-2.22.9.dist-info}/WHEEL +1 -1
  6. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/README.md +0 -0
  7. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/config_settings.sqlite +0 -0
  8. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
  9. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/make_config_db.sql +0 -0
  10. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/md_compare.sql +0 -0
  11. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/md_glossary.sql +0 -0
  12. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/md_upsert.sql +0 -0
  13. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/pg_compare.sql +0 -0
  14. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/pg_glossary.sql +0 -0
  15. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/pg_upsert.sql +0 -0
  16. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/script_template.sql +0 -0
  17. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/ss_compare.sql +0 -0
  18. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/ss_glossary.sql +0 -0
  19. {execsql2-2.22.8.data → execsql2-2.22.9.data}/data/execsql2_extras/ss_upsert.sql +0 -0
  20. {execsql2-2.22.8.dist-info → execsql2-2.22.9.dist-info}/entry_points.txt +0 -0
  21. {execsql2-2.22.8.dist-info → execsql2-2.22.9.dist-info}/licenses/LICENSE.txt +0 -0
  22. {execsql2-2.22.8.dist-info → execsql2-2.22.9.dist-info}/licenses/NOTICE +0 -0
@@ -242,6 +242,7 @@
242
242
  # Settings for the EMAIL metacommand.
243
243
 
244
244
  # SMTP server connection.
245
+ # If username is set, password (or enc_password, below) is required too.
245
246
  #host=
246
247
  #port=
247
248
  #username=
execsql/utils/mail.py CHANGED
@@ -66,15 +66,19 @@ class Mailer:
66
66
  self.smtpconn = smtplib.SMTP_SSL(conf.smtp_host, conf.smtp_port, timeout=smtp_timeout)
67
67
  else:
68
68
  self.smtpconn = smtplib.SMTP(conf.smtp_host, conf.smtp_port, timeout=smtp_timeout)
69
- self.smtpconn.ehlo_or_hello_if_needed()
69
+ self.smtpconn.ehlo_or_helo_if_needed()
70
70
  if conf.smtp_tls:
71
71
  self.smtpconn.starttls()
72
72
  self.smtpconn.ehlo(conf.smtp_host)
73
73
  if conf.smtp_username:
74
- if conf.smtp_password:
75
- self.smtpconn.login(conf.smtp_username, conf.smtp_password)
76
- else:
77
- self.smtpconn.login(conf.smtp_username)
74
+ if not conf.smtp_password:
75
+ # smtplib.login() requires a password; calling it with only a
76
+ # username raises TypeError deep in the stdlib.
77
+ raise ErrInfo(
78
+ type="error",
79
+ other_msg="Can't send email; an SMTP username is configured but no password.",
80
+ )
81
+ self.smtpconn.login(conf.smtp_username, conf.smtp_password)
78
82
 
79
83
  def sendmail(
80
84
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execsql2
3
- Version: 2.22.8
3
+ Version: 2.22.9
4
4
  Summary: Runs a SQL script against a PostgreSQL, SQLite, MariaDB/MySQL, DuckDB, Firebird, MS-Access, MS-SQL-Server, or Oracle database, or an ODBC DSN. Provides metacommands to import and export data, copy data between databases, conditionally execute SQL and metacommands, and dynamically alter SQL and metacommands with substitution variables.
5
5
  Project-URL: Homepage, https://execsql2.readthedocs.io
6
6
  Project-URL: Repository, https://github.com/geocoug/execsql
@@ -384,7 +384,7 @@ execsql-format --no-sql --in-place scripts/
384
384
  ```yaml
385
385
  repos:
386
386
  - repo: https://github.com/geocoug/execsql
387
- rev: v2.22.8
387
+ rev: v2.22.9
388
388
  hooks:
389
389
  - id: execsql-format
390
390
  ```
@@ -17,7 +17,7 @@ execsql/cli/help.py,sha256=ThwdZuMIfLPxLAPpGWwXFY_UfyWvYOCjdlBNK20Vzd8,5718
17
17
  execsql/cli/lint.py,sha256=YqKzFNUhyb_Th69hYgKk1ZZVjCsZfJMIiUGqp06JwNs,17236
18
18
  execsql/cli/run.py,sha256=Yb-Ri3cds0st1hUn4_w-PHMphTsArHhC4fx919SW9gU,39390
19
19
  execsql/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- execsql/data/execsql.conf.template,sha256=w_rJ1mx3FOWi_7qWLGcxsf3HTR5nSMsbKAzlfcJh_tM,10959
20
+ execsql/data/execsql.conf.template,sha256=zbjEluk6j9vnW74nlWpvopM6HDYe0rwJhsPVzU-e0Ss,11032
21
21
  execsql/db/__init__.py,sha256=jTbuafuKOqYtXFR1wvCOoKK5Lr3l1uErfaIbIr6UywI,1063
22
22
  execsql/db/access.py,sha256=h2zAMr3mQrm6vFlOYaN7iaG19K7gitXDuonllelqbcE,19539
23
23
  execsql/db/base.py,sha256=0K6mSCqFcheg_T91VOwEnagqqP_eLL2dP5VN4yDz36Q,35414
@@ -96,28 +96,28 @@ execsql/utils/datetime.py,sha256=8BrD24KWeMoouJZiFaXK4HF7plc-O_xrzIw12qOEyp8,362
96
96
  execsql/utils/errors.py,sha256=bDWooUmGdN8xqUt6csq466wPqKPLHHSi7U4hsmrFZxA,8577
97
97
  execsql/utils/fileio.py,sha256=_15UIdcRZxZn2R6YP4xQn-6C9CVK2yxj1oEfxULo2_c,33329
98
98
  execsql/utils/gui.py,sha256=X5aw6LVoeaAdHaQkymm4ba176jga0cS2GrqxSFWTWTg,23853
99
- execsql/utils/mail.py,sha256=SXpTBDx0WIPl2NSjkjmnoChHYVEMyZhIKU4QiJFFZNY,6011
99
+ execsql/utils/mail.py,sha256=SXZac24p62qxDbIviO8VdDZTbKljIoJWgWZfxIGu5zI,6260
100
100
  execsql/utils/numeric.py,sha256=_7bi5R6pHjMCkOPne_Sh5nUj-B8e9g6WFmjptFHaunA,1573
101
101
  execsql/utils/regex.py,sha256=B3mSBhRRx_DpUnX_t9IoYd05KvWAebiLMCZqQAmEwcw,3885
102
102
  execsql/utils/strings.py,sha256=UQNjpRCEFa1UO6feU-M-9e24wWAvizs_iu_4fFusLxo,8516
103
103
  execsql/utils/timer.py,sha256=eDYf5VzCNFk7oo90InJucUm3XcBdhYMogjZMqeg9xzc,1899
104
- execsql2-2.22.8.data/data/execsql2_extras/README.md,sha256=vX4NTL095dUoA_hesyRMGYBorEZ_Y_tJ9qrd-MVV09I,5032
105
- execsql2-2.22.8.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
106
- execsql2-2.22.8.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
107
- execsql2-2.22.8.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
108
- execsql2-2.22.8.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
109
- execsql2-2.22.8.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
110
- execsql2-2.22.8.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
111
- execsql2-2.22.8.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
112
- execsql2-2.22.8.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
113
- execsql2-2.22.8.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
114
- execsql2-2.22.8.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
115
- execsql2-2.22.8.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
116
- execsql2-2.22.8.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
117
- execsql2-2.22.8.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
118
- execsql2-2.22.8.dist-info/METADATA,sha256=YR0z4uOGh4ontDBb5qfx18stwbhiRyHkyZDAUwE_ST4,20382
119
- execsql2-2.22.8.dist-info/WHEEL,sha256=THafob7ofN-NsuMN7Mg4qZyHaQI7KkD-QlcQatYhXPo,87
120
- execsql2-2.22.8.dist-info/entry_points.txt,sha256=sUOxkM-dN1eBGGpSpDLsAaE0yNXYQKWZAfxPOlMkQyk,90
121
- execsql2-2.22.8.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
122
- execsql2-2.22.8.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
123
- execsql2-2.22.8.dist-info/RECORD,,
104
+ execsql2-2.22.9.data/data/execsql2_extras/README.md,sha256=vX4NTL095dUoA_hesyRMGYBorEZ_Y_tJ9qrd-MVV09I,5032
105
+ execsql2-2.22.9.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
106
+ execsql2-2.22.9.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
107
+ execsql2-2.22.9.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
108
+ execsql2-2.22.9.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
109
+ execsql2-2.22.9.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
110
+ execsql2-2.22.9.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
111
+ execsql2-2.22.9.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
112
+ execsql2-2.22.9.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
113
+ execsql2-2.22.9.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
114
+ execsql2-2.22.9.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
115
+ execsql2-2.22.9.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
116
+ execsql2-2.22.9.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
117
+ execsql2-2.22.9.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
118
+ execsql2-2.22.9.dist-info/METADATA,sha256=Ku6XhxrqV05mj1lvzrZEO6p4uKCa_PA2tbs43yBT9ew,20382
119
+ execsql2-2.22.9.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
120
+ execsql2-2.22.9.dist-info/entry_points.txt,sha256=sUOxkM-dN1eBGGpSpDLsAaE0yNXYQKWZAfxPOlMkQyk,90
121
+ execsql2-2.22.9.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
122
+ execsql2-2.22.9.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
123
+ execsql2-2.22.9.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.32.3
2
+ Generator: hatchling 1.32.4
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any