Skip to content

Commit 5a5c980

Browse files
authored
Code refactoring (#340)
* 📚 add migration notes. #322 * 🚜 relocate files for coherence * 🚜 relocated plugins.py * 🚜 grouped all plugins to plugins directory * 🚜 relocated data loader manager to core folder * 🚜 relocated definitions to core folder * 🚜 relocated hashstore to core folder * 💚 enable plugins to be found as module * 👕 update coding style * 💚 update hardcode references * 🚜 relocate utils
1 parent b24f4cb commit 5a5c980

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+111
-86
lines changed

docs/index.rst

+8
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ Developer Guide
4848

4949
.. include:: ../CHANGELOG.rst
5050

51+
Migration Notes
52+
================================================================================
53+
54+
.. toctree::
55+
56+
migration-note
57+
58+
5159
Indices and tables
5260
==================
5361

docs/level-7-use-custom-jinja2-filter-test-n-global/custom-jj2-plugin/filter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import sys
22
import base64
33

4-
from moban.jinja2.extensions import JinjaFilter
4+
from moban.plugins.jinja2.extensions import JinjaFilter
55

66

77
@JinjaFilter()
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from moban.jinja2.extensions import jinja_global
1+
from moban.plugins.jinja2.extensions import jinja_global
22

33
jinja_global('global', dict(hello='world'))

docs/level-7-use-custom-jinja2-filter-test-n-global/custom-jj2-plugin/test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from moban.jinja2.extensions import JinjaTest
1+
from moban.plugins.jinja2.extensions import JinjaTest
22

33

44
@JinjaTest()

docs/migration-notes.rst

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Migrate to 0.6.x
2+
================================================================================
3+
4+
It has been noticed that, this version will fail to template but do a copy, in
5+
the following situation::
6+
7+
targets:
8+
index.rst: index.rst
9+
10+
Please note that 0.6.x changed its behavior to do a copy instead of templating.

moban/constants.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from moban import file_system
1+
from moban.externals import file_system
22

33
# Template type
44
TEMPLATE_JINJA2 = "jinja2"

moban/core/context.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import os
22
import copy
33

4-
from moban import utils, reporter, constants, exceptions
4+
from moban import constants, exceptions
5+
from moban.core import utils
6+
from moban.externals import reporter
57
from moban.program_options import OPTIONS
6-
from moban.data_loaders.manager import merge, load_data
8+
from moban.core.data_loader import merge, load_data
79

810

911
class Context(object):

moban/data_loaders/manager.py moban/core/data_loader.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from collections import OrderedDict
22

3-
import moban.data_loaders.yaml # noqa: F401
4-
import moban.data_loaders.json_loader # noqa: F401
5-
from moban import constants, file_system
3+
from moban import constants
64
from lml.plugin import PluginManager
5+
from moban.externals import file_system
76

87

98
class AnyDataLoader(PluginManager):
File renamed without changes.

moban/hashstore.py moban/core/hashstore.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
import json
33
import hashlib
44

5-
from moban import constants, file_system
5+
from moban import constants
6+
from moban.externals import file_system
67

78
PY2 = sys.version_info[0] == 2
89

moban/core/moban_factory.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
import logging
44
from collections import defaultdict
55

6-
from moban import utils, reporter, constants, exceptions, file_system
6+
from moban import constants, exceptions
77
from fs.errors import ResourceNotFound
88
from lml.plugin import PluginManager
9-
from moban.hashstore import HASH_STORE
9+
from moban.core import utils
10+
from moban.externals import reporter, file_system
1011
from moban.deprecated import deprecated_moban_path_notation
1112
from moban.core.context import Context
1213
from moban.core.strategy import Strategy
13-
from moban.buffered_writer import BufferedWriter
14+
from moban.core.hashstore import HASH_STORE
15+
from moban.externals.buffered_writer import BufferedWriter
1416

1517
log = logging.getLogger(__name__)
1618
PY3_ABOVE = sys.version_info[0] > 2

moban/plugins.py moban/core/plugins.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from lml.loader import scan_plugins_regex
33

44
BUILTIN_EXENSIONS = [
5-
"moban.jinja2.engine",
6-
"moban.data_loaders.yaml",
7-
"moban.data_loaders.json_loader",
8-
"moban.copy",
5+
"moban.plugins.jinja2.engine",
6+
"moban.plugins.yaml_loader",
7+
"moban.plugins.json_loader",
8+
"moban.plugins.copy",
99
]
1010

1111

moban/utils.py moban/core/utils.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
import errno
33
import logging
44

5-
from moban import constants, exceptions, file_system
5+
from moban import constants, exceptions
6+
from moban.externals import file_system
67

78
LOG = logging.getLogger(__name__)
89

moban/deprecated/__init__.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import sys
22
from functools import wraps
33

4-
from moban import plugins, reporter, constants, file_system
4+
from moban import constants
5+
from moban.core import plugins
6+
from moban.externals import reporter, file_system
57
from moban.deprecated import repo
68
from moban.deprecated.repo import git_clone
79
from moban.deprecated.library import LIBRARIES

moban/deprecated/repo.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import sys
22
import subprocess
33

4-
from moban import reporter, constants, exceptions, file_system
5-
from moban.utils import mkdir_p
4+
from moban import constants, exceptions
5+
from moban.externals import reporter, file_system
6+
from moban.core.utils import mkdir_p
67

78

89
def git_clone(requires):
File renamed without changes.

moban/buffered_writer.py moban/externals/buffered_writer.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
import fs
55
import fs.path
6-
from moban import utils, file_system
6+
from moban.core import utils
7+
from moban.externals import file_system
78

89
PY2 = sys.version_info[0] == 2
910

File renamed without changes.
File renamed without changes.

moban/main.py

+5-12
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,12 @@
1414
import logging.config
1515
from collections import defaultdict
1616

17-
from moban import (
18-
core,
19-
plugins,
20-
reporter,
21-
constants,
22-
mobanfile,
23-
exceptions,
24-
file_system,
25-
)
17+
from moban import core, constants, mobanfile, exceptions
2618
from moban._version import __version__
27-
from moban.hashstore import HASH_STORE
19+
from moban.externals import reporter, file_system
20+
from moban.core.hashstore import HASH_STORE
2821
from moban.program_options import OPTIONS
29-
from moban.data_loaders.manager import merge, load_data
22+
from moban.core.data_loader import merge, load_data
3023

3124
LOG = logging.getLogger()
3225
LOG_LEVEL = [logging.WARNING, logging.INFO, logging.DEBUG]
@@ -274,7 +267,7 @@ def find_default_moban_file():
274267

275268

276269
def load_engine_factory_and_engines():
277-
plugins.make_sure_all_pkg_are_loaded()
270+
core.plugins.make_sure_all_pkg_are_loaded()
278271

279272

280273
def handle_custom_variables(list_of_definitions):

moban/mobanfile/__init__.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
import logging
55
from collections import OrderedDict
66

7-
from moban import core, reporter, constants
7+
from moban import core, constants
88
from lml.utils import do_import
9-
from moban.utils import verify_the_existence_of_directories
9+
from moban.externals import reporter
10+
from moban.core.utils import verify_the_existence_of_directories
1011
from moban.deprecated import handle_copy, handle_requires
12+
from moban.core.data_loader import merge
1113
from moban.mobanfile.targets import (
1214
parse_targets,
1315
extract_target,
1416
extract_group_targets,
1517
)
1618
from moban.core.moban_factory import expand_template_directories
17-
from moban.data_loaders.manager import merge
1819

1920
LOG = logging.getLogger(__name__)
2021

moban/mobanfile/targets.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import uuid
22
import logging
33

4-
from moban import core, reporter, constants, exceptions
5-
from moban.definitions import TemplateTarget
4+
from moban import core, constants, exceptions
5+
from moban.externals import reporter
6+
from moban.core.definitions import TemplateTarget
67
from moban.mobanfile.templates import handle_template
78

89
LOG = logging.getLogger(__name__)

moban/mobanfile/templates.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
22

3-
from moban import reporter, constants, file_system
3+
from moban import constants
4+
from moban.externals import reporter, file_system
45

56
LOG = logging.getLogger(__name__)
67

File renamed without changes.

moban/copy.py moban/plugins/copy.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from moban import constants, file_system
1+
from moban import constants
22
from lml.plugin import PluginInfo
3+
from moban.externals import file_system
34

45

56
@PluginInfo(
File renamed without changes.

moban/jinja2/engine.py moban/plugins/jinja2/engine.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
from importlib import import_module
44

55
import fs.errors
6-
from moban import constants, file_system
6+
from moban import constants
77
from jinja2 import Template, Environment
88
from lml.loader import scan_plugins_regex
99
from lml.plugin import PluginInfo, PluginManager
10+
from moban.externals import file_system
1011
from jinja2.exceptions import TemplateNotFound
1112

1213
from jinja2_fsloader import FSLoader
1314

1415
JINJA2_LIBRARIES = "^moban_jinja2_.+$"
1516
JINJA2_EXTENSIONS = [
16-
"moban.jinja2.filters.repr",
17-
"moban.jinja2.filters.github",
18-
"moban.jinja2.filters.text",
19-
"moban.jinja2.tests.files",
17+
"moban.plugins.jinja2.filters.repr",
18+
"moban.plugins.jinja2.filters.github",
19+
"moban.plugins.jinja2.filters.text",
20+
"moban.plugins.jinja2.tests.files",
2021
]
2122
JINJA2_THIRD_PARTY_EXTENSIONS = ["jinja2.ext.do", "jinja2.ext.loopcontrols"]
2223
LOG = logging.getLogger(__name__)
File renamed without changes.
File renamed without changes.

moban/jinja2/filters/github.py moban/plugins/jinja2/filters/github.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import re
22

3-
from moban.jinja2.extensions import JinjaFilter
3+
from moban.plugins.jinja2.extensions import JinjaFilter
44

55
GITHUB_REF_PATTERN = "`([^`]*?#[0-9]+)`"
66
ISSUE = "^.*?" + GITHUB_REF_PATTERN + ".*?$"

moban/jinja2/filters/repr.py moban/plugins/jinja2/filters/repr.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from moban.jinja2.extensions import JinjaFilter
1+
from moban.plugins.jinja2.extensions import JinjaFilter
22

33

44
@JinjaFilter()

moban/jinja2/filters/text.py moban/plugins/jinja2/filters/text.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import re
22

3-
from moban.jinja2.extensions import JinjaFilter
3+
from moban.plugins.jinja2.extensions import JinjaFilter
44

55

66
@JinjaFilter()

moban/plugins/jinja2/tests/__init__.py

Whitespace-only changes.

moban/jinja2/tests/files.py moban/plugins/jinja2/tests/files.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import sys
22
from os.path import isabs, isdir, exists, isfile, islink, ismount, lexists
33

4-
from moban.jinja2.extensions import jinja_tests
4+
from moban.plugins.jinja2.extensions import jinja_tests
55

66
if sys.platform == "win32":
77
from moban.jinja2.tests.win32 import samefile
File renamed without changes.

moban/data_loaders/json_loader.py moban/plugins/json_loader.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from moban import constants
44
from lml.plugin import PluginInfo
5-
from moban.file_system import open_file
5+
from moban.externals.file_system import open_file
66

77

88
@PluginInfo(constants.DATA_LOADER_EXTENSION, tags=["json"])

moban/data_loaders/yaml.py moban/plugins/yaml_loader.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from moban import constants
22
from lml.plugin import PluginInfo
33
from ruamel.yaml import YAML
4-
from moban.file_system import open_file
4+
from moban.externals.file_system import open_file
55

66

77
@PluginInfo(constants.DATA_LOADER_EXTENSION, tags=["yaml", "yml"])

rnd_requirements.txt

-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
11
https://github.com/moremoban/moban-handlebars/archive/dev.zip
2-
3-
4-

0 commit comments

Comments
 (0)