Skip to content

Commit

Permalink
replace homegrown AttrDict with dotmap
Browse files Browse the repository at this point in the history
  • Loading branch information
FelixSchwarz committed Nov 21, 2023
1 parent 70e072f commit 713d0aa
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 50 deletions.
6 changes: 4 additions & 2 deletions mjml/core/api.py
@@ -1,5 +1,7 @@

from ..lib import AttrDict, merge_dicts
from dotmap import DotMap

from ..lib import merge_dicts
from .registry import components


Expand Down Expand Up @@ -30,7 +32,7 @@ def __init__(self, *, attributes=None, children=(), content='', context=None,
self.context = context
self.tagName = tagName

self.props = AttrDict(merge_dicts(props, {'children': children, 'content': content}))
self.props = DotMap(merge_dicts(props, {'children': children, 'content': content}))

# upstream also checks "self.allowed_attrs"
self.attrs = merge_dicts(
Expand Down
6 changes: 4 additions & 2 deletions mjml/elements/_base.py
@@ -1,9 +1,11 @@


from dotmap import DotMap

from ..core import Component, initComponent
from ..core.registry import components
from ..helpers import *
from ..lib import AttrDict, merge_dicts
from ..lib import merge_dicts


__all__ = [
Expand Down Expand Up @@ -39,7 +41,7 @@ def getBoxWidths(self):
paddings = get_padding('right') + get_padding('left')
borders = self.getShorthandBorderValue('right') + self.getShorthandBorderValue('left')

return AttrDict({
return DotMap({
'totalWidth': parsedWidth,
'borders' : borders,
'paddings' : paddings,
Expand Down
6 changes: 4 additions & 2 deletions mjml/elements/mj_section.py
Expand Up @@ -3,8 +3,10 @@
from collections import namedtuple
from decimal import Decimal

from dotmap import DotMap

from ..helpers import parse_percentage, strip_unit, suffixCssClasses
from ..lib import AttrDict, merge_dicts
from ..lib import merge_dicts
from ._base import BodyComponent


Expand Down Expand Up @@ -188,7 +190,7 @@ def renderSimple(self):

def getBackgroundPosition(self):
pos = self.parseBackgroundPosition()
return AttrDict({
return DotMap({
'posX': self.getAttribute('background-position-x') or pos.x,
'posY': self.getAttribute('background-position-y') or pos.y,
})
Expand Down
1 change: 0 additions & 1 deletion mjml/lib/__init__.py
@@ -1,3 +1,2 @@

from .attribute_dict import *
from .dict_merger import *
35 changes: 0 additions & 35 deletions mjml/lib/attribute_dict.py

This file was deleted.

11 changes: 6 additions & 5 deletions mjml/mjml2html.py
Expand Up @@ -3,11 +3,12 @@
from typing import List, Optional

from bs4 import BeautifulSoup
from dotmap import DotMap

from .core import initComponent
from .core.registry import register_components, register_core_components
from .helpers import json_to_xml, mergeOutlookConditionnals, omit, skeleton_str as default_skeleton
from .lib import AttrDict, merge_dicts
from .lib import merge_dicts


def ignore_empty(values):
Expand Down Expand Up @@ -52,7 +53,7 @@ def mjml_to_html(xml_fp_or_json, skeleton=None, template_dir=None,
}
# LATER: ability to override fonts via **options

globalDatas = AttrDict({
globalDatas = DotMap({
'backgroundColor' : None,
'breakpoint' : '480px',
'classes' : {},
Expand Down Expand Up @@ -173,7 +174,7 @@ def addComponentHeadSyle(headStyle):
def setBackgroundColor(color):
globalDatas.backgroundColor = color

bodyHelpers = AttrDict(
bodyHelpers = DotMap(
addHeadStyle = addHeadStyle,
addMediaQuery = addMediaQuery,
addComponentHeadSyle = addComponentHeadSyle,
Expand All @@ -199,7 +200,7 @@ def _head_data_add(attr, *params):
assert len(param_values) == 1, 'shortcut in implementation'
current_attr_value[param_key] = param_values[0]

headHelpers = AttrDict(
headHelpers = DotMap(
add = _head_data_add,
)
globalDatas.headRaw = processing(mjHead, headHelpers)
Expand Down Expand Up @@ -241,7 +242,7 @@ def _head_data_add(attr, *params):

content = mergeOutlookConditionnals(content)

return AttrDict({
return DotMap({
'html': content,
'errors': errors,
})
Expand Down
7 changes: 4 additions & 3 deletions setup.cfg
Expand Up @@ -40,9 +40,10 @@ zip_safe = true
include_package_data = true

install_requires =
beautifulsoup4
docopt
jinja2
beautifulsoup4
dotmap
docopt
jinja2

scripts =
mjml/scripts/mjml-html-compare
Expand Down

0 comments on commit 713d0aa

Please sign in to comment.