From a3f13da4a6f0d9a146df3c72c9a3f8ea05deac27 Mon Sep 17 00:00:00 2001
From: Julian Rother <julian@jrother.eu>
Date: Thu, 11 Mar 2021 19:51:17 +0100
Subject: [PATCH] Restructured source tree

---
 db.py                                     | 11 ++++++-----
 ldapserver/__init__.py                    |  6 ++++++
 dn.py => ldapserver/dn.py                 |  0
 exceptions.py => ldapserver/exceptions.py |  2 +-
 ldap.py => ldapserver/ldap.py             |  0
 ldapserver/sasl/__init__.py               |  1 +
 {sasl => ldapserver/sasl}/digest_md5.py   |  2 +-
 server.py => ldapserver/server.py         |  6 +++---
 sasl/__init__.py                          |  0
 9 files changed, 18 insertions(+), 10 deletions(-)
 create mode 100644 ldapserver/__init__.py
 rename dn.py => ldapserver/dn.py (100%)
 rename exceptions.py => ldapserver/exceptions.py (97%)
 rename ldap.py => ldapserver/ldap.py (100%)
 create mode 100644 ldapserver/sasl/__init__.py
 rename {sasl => ldapserver/sasl}/digest_md5.py (99%)
 rename server.py => ldapserver/server.py (99%)
 delete mode 100644 sasl/__init__.py

diff --git a/db.py b/db.py
index c1f3176..ddace7a 100644
--- a/db.py
+++ b/db.py
@@ -1,5 +1,6 @@
 import socket
 import struct
+import socketserver
 from crypt import crypt
 from ssl import SSLContext, SSLSocket
 
@@ -7,11 +8,11 @@ from sqlalchemy import create_engine, or_, and_, Column, Integer, String, Table,
 from sqlalchemy.orm import sessionmaker, relationship, RelationshipProperty, aliased
 from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.ext.hybrid import hybrid_property
-from ldap import SearchScope, FilterAnd, FilterOr, FilterNot, FilterEqual, FilterPresent
-from server import LDAPRequestHandler, LDAPInvalidCredentials, LDAPInsufficientAccessRights, LDAPConfidentialityRequired, LDAPNoSuchObject, encode_attribute, CaseInsensitiveDict
-import socketserver
-from dn import parse_dn, build_dn
-import sasl.digest_md5
+
+from ldapserver import *
+from ldapserver.ldap import SearchScope, FilterAnd, FilterOr, FilterNot, FilterEqual, FilterPresent
+from ldapserver.dn import parse_dn, build_dn
+from ldapserver.server import CaseInsensitiveDict, encode_attribute
 
 Base = declarative_base()
 
diff --git a/ldapserver/__init__.py b/ldapserver/__init__.py
new file mode 100644
index 0000000..81a829d
--- /dev/null
+++ b/ldapserver/__init__.py
@@ -0,0 +1,6 @@
+from . import ldap
+from . import dn
+from . import sasl
+
+from .exceptions import *
+from .server import LDAPRequestHandler
diff --git a/dn.py b/ldapserver/dn.py
similarity index 100%
rename from dn.py
rename to ldapserver/dn.py
diff --git a/exceptions.py b/ldapserver/exceptions.py
similarity index 97%
rename from exceptions.py
rename to ldapserver/exceptions.py
index 7263a09..e173821 100644
--- a/exceptions.py
+++ b/ldapserver/exceptions.py
@@ -1,4 +1,4 @@
-from ldap import LDAPResultCode
+from .ldap import LDAPResultCode
 
 class LDAPError(Exception):
 	def __init__(self, code=LDAPResultCode.other, message=''):
diff --git a/ldap.py b/ldapserver/ldap.py
similarity index 100%
rename from ldap.py
rename to ldapserver/ldap.py
diff --git a/ldapserver/sasl/__init__.py b/ldapserver/sasl/__init__.py
new file mode 100644
index 0000000..e46e555
--- /dev/null
+++ b/ldapserver/sasl/__init__.py
@@ -0,0 +1 @@
+from . import digest_md5
diff --git a/sasl/digest_md5.py b/ldapserver/sasl/digest_md5.py
similarity index 99%
rename from sasl/digest_md5.py
rename to ldapserver/sasl/digest_md5.py
index fd81af1..9365839 100644
--- a/sasl/digest_md5.py
+++ b/ldapserver/sasl/digest_md5.py
@@ -1,7 +1,7 @@
 import hashlib
 import secrets
 
-from exceptions import *
+from ..exceptions import *
 
 def _parse_token(s):
 	SEP = [b'(', b')', b'<', b'>', b'@', b',', b';', b':', b'\\', b'\'', b'/',
diff --git a/server.py b/ldapserver/server.py
similarity index 99%
rename from server.py
rename to ldapserver/server.py
index 17a964e..d8fb7a3 100644
--- a/server.py
+++ b/ldapserver/server.py
@@ -5,9 +5,9 @@ import socket
 import ssl
 from socketserver import BaseRequestHandler
 
-from ldap import *
-import sasl.digest_md5
-from exceptions import *
+from .ldap import *
+from .exceptions import *
+from . import sasl
 
 def decode_msg(shallowmsg):
 	try:
diff --git a/sasl/__init__.py b/sasl/__init__.py
deleted file mode 100644
index e69de29..0000000
-- 
GitLab