You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by hu...@apache.org on 2021/05/09 15:49:44 UTC

[incubator-ponymail-foal] branch master updated: Fix imports in the scripts in tools

This is an automated email from the ASF dual-hosted git repository.

humbedooh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git


The following commit(s) were added to refs/heads/master by this push:
     new 74b7a0a  Fix imports in the scripts in tools
     new bbfcfb8  Merge pull request #23 from sbp/archiver-imports
74b7a0a is described below

commit 74b7a0ae58ad444119a4444a3277c5c1c02d45b4
Author: Sean B. Palmer <se...@miscoranda.com>
AuthorDate: Sat May 8 21:59:57 2021 +0100

    Fix imports in the scripts in tools
---
 tools/__init__.py           |  1 +
 tools/archiver.py           | 22 +++++++++++++---------
 tools/import-mbox.py        | 13 ++++++++++---
 tools/migrate.py            |  7 +++++--
 tools/plugins/elastic.py    |  4 ++--
 tools/plugins/generators.py |  9 +++++----
 tools/push-failures.py      |  8 ++++++--
 7 files changed, 42 insertions(+), 22 deletions(-)

diff --git a/tools/__init__.py b/tools/__init__.py
new file mode 100644
index 0000000..821ee2a
--- /dev/null
+++ b/tools/__init__.py
@@ -0,0 +1 @@
+from .archiver import *
diff --git a/tools/archiver.py b/tools/archiver.py
index b12a238..bf20843 100755
--- a/tools/archiver.py
+++ b/tools/archiver.py
@@ -54,19 +54,24 @@ import traceback
 import typing
 import uuid
 
+import elasticsearch
 import formatflowed
 import netaddr
 
-import plugins.ponymailconfig
-import plugins.generators
-import plugins.elastic
-import elasticsearch
+if not __package__:
+    from plugins import ponymailconfig
+    from plugins import generators
+    from plugins.elastic import Elastic
+else:
+    from .plugins import ponymailconfig
+    from .plugins import generators
+    from .plugins.elastic import Elastic
 
 # This is what we will default to if we are presented with emails without character sets and US-ASCII doesn't work.
 DEFAULT_CHARACTER_SET = 'utf-8'
 
 # Fetch config from same dir as archiver.py
-config = plugins.ponymailconfig.PonymailConfig()
+config = ponymailconfig.PonymailConfig()
 
 # Set some vars before we begin
 logger = None
@@ -438,7 +443,7 @@ class Archiver(object):  # N.B. Also used by import-mbox.py
             for generator in self.generator.split(" "):
                 if generator:
                     try:
-                        mid = plugins.generators.generate(
+                        mid = generators.generate(
                             generator,
                             msg,
                             generator_body,
@@ -536,7 +541,7 @@ class Archiver(object):  # N.B. Also used by import-mbox.py
 
         if args.dump:
             try:
-                elastic = plugins.elastic.Elastic()
+                elastic = Elastic()
             except elasticsearch.exceptions.ElasticsearchException as e:
                 print(e)
                 print(
@@ -544,7 +549,7 @@ class Archiver(object):  # N.B. Also used by import-mbox.py
                     % args.dump
                 )
         else:
-            elastic = plugins.elastic.Elastic()
+            elastic = elastic.Elastic()
 
         try:
             if contents:
@@ -568,7 +573,6 @@ class Archiver(object):  # N.B. Also used by import-mbox.py
                     "source": mbox_source(raw_message),
                 },
             )
-
             # Write to audit log
             if elastic.indices.exists(index=elastic.db_auditlog):
                 elastic.index(
diff --git a/tools/import-mbox.py b/tools/import-mbox.py
index dad80d8..66b7a82 100755
--- a/tools/import-mbox.py
+++ b/tools/import-mbox.py
@@ -39,8 +39,12 @@ from threading import Lock, Thread
 from urllib.request import urlopen
 
 
-import archiver
-from plugins.elastic import Elastic
+if not __package__:
+    import archiver
+    from plugins.elastic import Elastic
+else:
+    from . import archiver
+    from .plugins.elastic import Elastic
 
 goodies = 0
 baddies = 0
@@ -565,7 +569,10 @@ if args.nomboxo:
 else:
     # Temporary patch to fix Python email package limitation
     # It must be removed when the Python package is fixed
-    from plugins.mboxo_patch import MboxoFactory, MboxoReader
+    if not __package__:
+        from plugins.mboxo_patch import MboxoFactory, MboxoReader
+    else:
+        from .plugins.mboxo_patch import MboxoFactory, MboxoReader
 
 if args.resend:
     resendTo = args.resend[0]
diff --git a/tools/migrate.py b/tools/migrate.py
index 5f63a43..c9448e8 100644
--- a/tools/migrate.py
+++ b/tools/migrate.py
@@ -2,7 +2,10 @@ import asyncio
 from elasticsearch import AsyncElasticsearch
 from elasticsearch.helpers import async_scan
 from elasticsearch import helpers
-import plugins.generators
+if not __package__:
+    from plugins import generators
+else:
+    from .plugins import generators
 import time
 import base64
 import hashlib
@@ -93,7 +96,7 @@ async def main():
         else:  # bytify
             source_text = source_text.encode('utf-8', 'ignore')
         if do_dkim:
-            dkim_id = plugins.generators.dkim(None, None, list_id, None, source_text)
+            dkim_id = generators.dkim(None, None, list_id, None, source_text)
             old_id = doc['_id']
             doc['_source']['mid'] = dkim_id
             doc['_source']['permalinks'] = [
diff --git a/tools/plugins/elastic.py b/tools/plugins/elastic.py
index f2416f3..f6b778c 100755
--- a/tools/plugins/elastic.py
+++ b/tools/plugins/elastic.py
@@ -24,7 +24,7 @@ import sys
 import logging
 import certifi
 import os
-import plugins.ponymailconfig
+from . import ponymailconfig
 
 try:
     from elasticsearch import Elasticsearch, helpers
@@ -48,7 +48,7 @@ class Elastic:
 
     def __init__(self, dbname=None):
         # Fetch config
-        config = plugins.ponymailconfig.PonymailConfig()
+        config = ponymailconfig.PonymailConfig()
 
         # Set default names for all indices we use
         self.dbname = config.get('elasticsearch', 'dbname', fallback='ponymail')
diff --git a/tools/plugins/generators.py b/tools/plugins/generators.py
index 919381c..d262133 100644
--- a/tools/plugins/generators.py
+++ b/tools/plugins/generators.py
@@ -23,7 +23,8 @@ For older ID generators, see generators_old.py
 import base64
 import hashlib
 import typing
-import plugins.generators_old
+
+from . import generators_old
 
 # For optional nonce
 config: typing.Optional[dict] = None
@@ -177,9 +178,9 @@ def full(msg, _body, lid, _attachments, _raw_msg):
 __GENERATORS = {
     'dkim': dkim,
     'full': full,
-    'medium': plugins.generators_old.medium,
-    'cluster': plugins.generators_old.cluster,
-    'legacy': plugins.generators_old.legacy,
+    'medium': generators_old.medium,
+    'cluster': generators_old.cluster,
+    'legacy': generators_old.legacy,
 }
 
 
diff --git a/tools/push-failures.py b/tools/push-failures.py
index 3c15930..910e45f 100755
--- a/tools/push-failures.py
+++ b/tools/push-failures.py
@@ -21,9 +21,13 @@
 import argparse
 import json
 import os
-import plugins.elastic
 
-elastic = plugins.elastic.Elastic()
+if not __package__:
+    from plugins.elastic import Elastic
+else:
+    from .plugins.elastic import Elastic
+
+elastic = Elastic()
 
 parser = argparse.ArgumentParser(description="Command line options.")
 parser.add_argument(