@@ -1 +1,2 @@ | |||||
__version__ = "4.12.1" | |||||
from __future__ import unicode_literals | |||||
__version__ = "4.12.2" |
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import json | import json | ||||
import frappe | import frappe | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import sys, os | import sys, os | ||||
import json | import json | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
from frappe import _ | from frappe import _ | ||||
def get_data(): | def get_data(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
from frappe import _ | from frappe import _ | ||||
from frappe.widgets.moduleview import add_setup_section | from frappe.widgets.moduleview import add_setup_section | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
from frappe import _ | from frappe import _ | ||||
def get_data(): | def get_data(): | ||||
@@ -4,13 +4,12 @@ | |||||
from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
import frappe | import frappe | ||||
import json | import json | ||||
import urllib | |||||
from email.utils import formataddr | from email.utils import formataddr | ||||
from frappe.website.utils import is_signup_enabled | from frappe.website.utils import is_signup_enabled | ||||
from frappe.utils import get_url, cstr | from frappe.utils import get_url, cstr | ||||
from frappe.utils.email_lib.email_body import get_email | from frappe.utils.email_lib.email_body import get_email | ||||
from frappe.utils.email_lib.smtp import send | from frappe.utils.email_lib.smtp import send | ||||
from frappe.utils import scrub_urls, cint | |||||
from frappe.utils import scrub_urls, cint, quoted | |||||
from frappe import _ | from frappe import _ | ||||
from frappe.model.document import Document | from frappe.model.document import Document | ||||
@@ -167,14 +166,13 @@ def attach_print(mail, sent_via, print_html, print_format): | |||||
def set_portal_link(sent_via, comm): | def set_portal_link(sent_via, comm): | ||||
"""set portal link in footer""" | """set portal link in footer""" | ||||
footer = "" | footer = "" | ||||
if is_signup_enabled(): | if is_signup_enabled(): | ||||
is_valid_recipient = cstr(sent_via.get("email") or sent_via.get("email_id") or | is_valid_recipient = cstr(sent_via.get("email") or sent_via.get("email_id") or | ||||
sent_via.get("contact_email")) in comm.recipients | sent_via.get("contact_email")) in comm.recipients | ||||
if is_valid_recipient: | if is_valid_recipient: | ||||
url = "%s/%s/%s" % (get_url(), urllib.quote(sent_via.doctype), urllib.quote(sent_via.name)) | |||||
url = quoted("%s/%s/%s" % (get_url(), sent_via.doctype, sent_via.name)) | |||||
footer = """<!-- Portal Link --> | footer = """<!-- Portal Link --> | ||||
<p><a href="%s" target="_blank">View this on our website</a></p>""" % url | <p><a href="%s" target="_blank">View this on our website</a></p>""" % url | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, {app_publisher} and Contributors | # Copyright (c) 2013, {app_publisher} and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, frappe.utils, frappe.utils.scheduler | import frappe, frappe.utils, frappe.utils.scheduler | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
"""Use blog post test to test user permissions logic""" | """Use blog post test to test user permissions logic""" | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import frappe.defaults | import frappe.defaults | ||||
@@ -139,7 +139,7 @@ frappe.desktop.show_all_modules = function() { | |||||
module.label = __(module.label); | module.label = __(module.label); | ||||
$(repl('<div class="list-group-item" data-label="%(name)s">\ | $(repl('<div class="list-group-item" data-label="%(name)s">\ | ||||
<div class="row">\ | <div class="row">\ | ||||
<div class="col-xs-2"><a href="#%(link)s">%(app_icon)s</a></div>\ | |||||
<div class="col-xs-2">%(app_icon)s</div>\ | |||||
<div class="col-xs-10" style="padding-top: 14px;">\ | <div class="col-xs-10" style="padding-top: 14px;">\ | ||||
%(label)s\ | %(label)s\ | ||||
<input class="pull-right" type="checkbox" data-name="%(name)s" />\ | <input class="pull-right" type="checkbox" data-name="%(name)s" />\ | ||||
@@ -1,9 +1,10 @@ | |||||
from __future__ import unicode_literals | |||||
app_name = "frappe" | app_name = "frappe" | ||||
app_title = "Frappe Framework" | app_title = "Frappe Framework" | ||||
app_publisher = "Web Notes Technologies Pvt. Ltd." | app_publisher = "Web Notes Technologies Pvt. Ltd." | ||||
app_description = "Full Stack Web Application Framework in Python" | app_description = "Full Stack Web Application Framework in Python" | ||||
app_icon = "assets/frappe/images/frappe.svg" | app_icon = "assets/frappe/images/frappe.svg" | ||||
app_version = "4.12.1" | |||||
app_version = "4.12.2" | |||||
app_color = "#3498db" | app_color = "#3498db" | ||||
app_email = "support@frappe.io" | app_email = "support@frappe.io" | ||||
@@ -24,7 +24,7 @@ type_map = { | |||||
,'Small Text': ('text', '') | ,'Small Text': ('text', '') | ||||
,'Long Text': ('longtext', '') | ,'Long Text': ('longtext', '') | ||||
,'Code': ('text', '') | ,'Code': ('text', '') | ||||
,'Text Editor': ('text', '') | |||||
,'Text Editor': ('longtext', '') | |||||
,'Date': ('date', '') | ,'Date': ('date', '') | ||||
,'Datetime': ('datetime', '6') | ,'Datetime': ('datetime', '6') | ||||
,'Time': ('time', '6') | ,'Time': ('time', '6') | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
from frappe.model import rename_field | from frappe.model import rename_field | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
from frappe.model import rename_field | from frappe.model import rename_field | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe, json | import frappe, json | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def execute(): | def execute(): | ||||
@@ -105,6 +105,12 @@ $.extend(frappe.perm, { | |||||
delete perm[0][key]; | delete perm[0][key]; | ||||
} | } | ||||
}); | }); | ||||
$.each(perm, function(i, v) { | |||||
if(v===undefined) { | |||||
perm[i] = {}; | |||||
} | |||||
}); | |||||
}, | }, | ||||
get_match_rules: function(doctype, ptype) { | get_match_rules: function(doctype, ptype) { | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import logging | import logging | ||||
import logging.config | import logging.config | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import frappe.utils, markdown2 | import frappe.utils, markdown2 | ||||
@@ -1,4 +1,5 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
no_sitemap = 1 | no_sitemap = 1 |
@@ -1,4 +1,5 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
no_sitemap = 1 | no_sitemap = 1 |
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2014, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2014, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
import frappe.widgets.form.assign_to | import frappe.widgets.form.assign_to | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import unittest, frappe | import unittest, frappe | ||||
from frappe.utils import sel | from frappe.utils import sel | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2014, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2014, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
from frappe.core.page.data_import_tool import exporter | from frappe.core.page.data_import_tool import exporter | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import os | import os | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
from frappe import _ | from frappe import _ | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest | import frappe, unittest | ||||
from frappe.widgets.form.meta import get_meta | from frappe.widgets.form.meta import get_meta | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe, unittest, os | import frappe, unittest, os | ||||
import frappe.translate | import frappe.translate | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import click | import click | ||||
import frappe | import frappe | ||||
import importlib | import importlib | ||||
@@ -583,10 +583,13 @@ def expand_relative_urls(html): | |||||
return re.sub('(href|src){1}([\s]*=[\s]*[\'"]?)((?!http)[^\'" >]+)([\'"]?)', _expand_relative_urls, html) | return re.sub('(href|src){1}([\s]*=[\s]*[\'"]?)((?!http)[^\'" >]+)([\'"]?)', _expand_relative_urls, html) | ||||
def quoted(url): | |||||
return cstr(urllib.quote(encode(url), safe=b"~@#$&()*!+=:;,.?/'")) | |||||
def quote_urls(html): | def quote_urls(html): | ||||
def _quote_url(match): | def _quote_url(match): | ||||
groups = list(match.groups()) | groups = list(match.groups()) | ||||
groups[2] = urllib.quote(groups[2].encode("utf-8"), safe=b"~@#$&()*!+=:;,.?/'").decode("utf-8") | |||||
groups[2] = quoted(groups[2]) | |||||
return "".join(groups) | return "".join(groups) | ||||
return re.sub('(href|src){1}([\s]*=[\s]*[\'"]?)((?:http)[^\'">]+)([\'"]?)', | return re.sub('(href|src){1}([\s]*=[\s]*[\'"]?)((?:http)[^\'">]+)([\'"]?)', | ||||
_quote_url, html) | _quote_url, html) | ||||
@@ -1,3 +1,4 @@ | |||||
from __future__ import unicode_literals | |||||
import json, base64, os | import json, base64, os | ||||
import frappe.cli | import frappe.cli | ||||
from frappe.celery_app import get_celery | from frappe.celery_app import get_celery | ||||
@@ -1,5 +1,6 @@ | |||||
#!/usr/bin/env python | #!/usr/bin/env python | ||||
"""html2text: Turn HTML into equivalent Markdown-structured text.""" | """html2text: Turn HTML into equivalent Markdown-structured text.""" | ||||
from __future__ import unicode_literals | |||||
__version__ = "3.200.3" | __version__ = "3.200.3" | ||||
__author__ = "Aaron Swartz (me@aaronsw.com)" | __author__ = "Aaron Swartz (me@aaronsw.com)" | ||||
__copyright__ = "(C) 2004-2008 Aaron Swartz. GNU GPL 3." | __copyright__ = "(C) 2004-2008 Aaron Swartz. GNU GPL 3." | ||||
@@ -208,4 +208,4 @@ class JavascriptMinify(object): | |||||
self.theLookahead = None | self.theLookahead = None | ||||
self._jsmin() | self._jsmin() | ||||
self.instream.close() | |||||
self.instream.close() |
@@ -1,4 +1,5 @@ | |||||
# get data for moment.js | # get data for moment.js | ||||
from __future__ import unicode_literals | |||||
def update(tz, out): | def update(tz, out): | ||||
ltz = data["links"].get(tz, tz) | ltz = data["links"].get(tz, tz) | ||||
zone = data["zones"].get(ltz) | zone = data["zones"].get(ltz) | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import pdfkit, os, frappe | import pdfkit, os, frappe | ||||
from frappe.utils import scrub_urls | from frappe.utils import scrub_urls | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
"""Use blog post test to test user permissions logic""" | """Use blog post test to test user permissions logic""" | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# MIT License. See license.txt | # MIT License. See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe |
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,5 +1,6 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
# See license.txt | # See license.txt | ||||
from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
import unittest | import unittest | ||||
@@ -1,7 +1,7 @@ | |||||
from setuptools import setup, find_packages | from setuptools import setup, find_packages | ||||
import os | import os | ||||
version = "4.12.1" | |||||
version = "4.12.2" | |||||
with open("requirements.txt", "r") as f: | with open("requirements.txt", "r") as f: | ||||
install_requires = f.readlines() | install_requires = f.readlines() | ||||