Skip to content

Python3 support #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions angular_scaffold/management/commands/createdebugger.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from django.core.management.base import BaseCommand
from django.conf import settings

from angular_scaffold.management.commands.helpers._generate_debugger import generate_debugger
from angular_scaffold.management.commands.helpers._generate_debugger import \
generate_debugger
import sys


class Command(BaseCommand):
Expand All @@ -15,8 +17,11 @@ def handle(self, *args, **options):
else:
path = '.'
if not args:
password = raw_input("Password: ")
if (sys.version_info > (3, 0)):
password = input("Password: ")
else:
password = raw_input("Password: ")
generate_debugger(path, password)
else:
for password in args:
generate_debugger(path, password)
generate_debugger(path, password)
35 changes: 24 additions & 11 deletions angular_scaffold/management/commands/helpers/_add_route.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import os
import re
import sys
from string import Template

from _generate_view import generate_view
from _generate_controller import generate_controller
from ._generate_view import generate_view
from ._generate_controller import generate_controller


_route = Template(""".when('${when}',
Expand All @@ -24,17 +25,26 @@


def add_route(directory, when=None, controller=None, template=None, resolves=None):
if not when:
when = raw_input("When: ")
if not controller:
controller = raw_input("Controller: ")
if (sys.version_info > (3, 0)):
if not when:
when = input("When: ")
if not controller:
controller = input("Controller: ")
else:
if not when:
when = raw_input("When: ")
if not controller:
controller = raw_input("Controller: ")
if not os.path.exists(os.path.join(directory, 'assets', 'controllers', controller + "Controller.js")):
generate_controller(directory, controller)
controller = controller.title() + "Controller"
else:
print "Using Controller: %s" % os.path.join(directory, 'assets', 'controllers', controller + "Controller.js")
print("Using Controller: %s" % os.path.join(directory, 'assets', 'controllers', controller + "Controller.js"))
if not template:
template = raw_input("Template (relative to views folder): ")
if (sys.version_info > (3, 0)):
template = input("Template (relative to views folder): ")
else:
template = raw_input("Template (relative to views folder): ")
template_name = template
if not template_name.endswith('.html'):
template_html = template_name + '.html'
Expand All @@ -44,12 +54,15 @@ def add_route(directory, when=None, controller=None, template=None, resolves=Non
if not os.path.exists(os.path.join(directory, 'assets', 'app', 'views', template_html)):
generate_view(directory, template_name)
else:
print "Using Template: %s" % os.path.join(directory, 'assets', 'app', 'views', template_html)
print("Using Template: %s" % os.path.join(directory, 'assets', 'app', 'views', template_html))
if resolves is None:
resolve_input = True
resolves = []
while resolve_input:
resolve_input = raw_input("Resolve: ")
if (sys.version_info > (3, 0)):
resolve_input = input("Resolve: ")
else:
resolve_input = raw_input("Resolve: ")
if resolve_input:
resolves.append(resolve_input)
if resolves:
Expand All @@ -72,4 +85,4 @@ def add_route(directory, when=None, controller=None, template=None, resolves=Non
organized_routes = routes
# TODO: organize routes by route complexity and group them
with open(os.path.join(directory, 'assets', 'app', 'config', 'routes.js'), 'w') as route_file:
route_file.write(_header + ''.join(organized_routes) + _footer)
route_file.write(_header + ''.join(organized_routes) + _footer)
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import sys


_assets = {
Expand Down Expand Up @@ -68,7 +69,10 @@ def generate_assets(directory, app_name=None):
_build(_assets, os.path.join(directory, 'assets'))
# setup angular application
if not app_name:
app_name = raw_input("Angular Application Name: ")
if (sys.version_info > (3, 0)):
app_name = input("Angular Application Name: ")
else:
app_name = raw_input("Angular Application Name: ")
with open(os.path.join(directory, 'assets', 'app', 'app.js'), 'w') as app:
app.write('var app = angular.module("%s", []);' % app_name)
# setup styles
Expand All @@ -80,4 +84,4 @@ def generate_assets(directory, app_name=None):
'//vendor\n'
'\n'
'//site\n'
'@import "site/global";\n')
'@import "site/global";\n')
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ def generate_controller(directory, name):
with open(os.path.join(directory, 'assets', controller), 'w') as f:
f.write(_template.substitute(name=title))
else:
print "Controller Already Exists: %s" % controller
print("Controller Already Exists: %s" % controller)
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

def generate_csrf(directory):
filename = os.path.join(directory, 'assets', 'app', 'config', 'csrf.js')
print "Creating: " + filename
print("Creating: " + filename)
with open(filename, 'w') as f:
f.write(_csrf)
print "Injecting cookie dependency"
update_dependencies(directory, 'ngCookies')
print("Injecting cookie dependency")
update_dependencies(directory, 'ngCookies')
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
import os
import sys
import hashlib


def generate_debugger(directory, password):
m = hashlib.md5()
m.update(password)
if (sys.version_info > (3, 0)):
m.update(password.encode('utf-8'))
else:
m.update(password)
password_hash = m.hexdigest()
logger_file = os.path.join(directory, 'assets', 'app', 'config', 'logger.js')
print "Creating: " + logger_file
print("Creating: " + logger_file)
with open(logger_file, 'w') as f:
f.write("""app.config(["$logProvider", function ($logProvider) {
"use strict";
Expand Down Expand Up @@ -49,4 +54,4 @@ def generate_debugger(directory, password):
if not os.path.exists(os.path.join(directory, 'docs')):
os.makedirs(os.path.join(directory, 'docs'))
with open(os.path.join(directory, 'docs', 'logging.md'), 'w') as f:
f.write(_debugger_docs)
f.write(_debugger_docs)
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

def generate_limiter(directory):
filename = os.path.join(directory, 'assets', 'app', 'config', 'limiter.js')
print "Creating: " + filename
print("Creating: " + filename)
with open(filename, 'w') as f:
f.write(_limiter)
if not os.path.exists(os.path.join(directory, 'docs')):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

def generate_routes(directory):
filename = os.path.join(directory, 'assets', 'app', 'config', 'routes.js')
print "Creating: " + filename
print("Creating: " + filename)
with open(filename, 'w') as f:
f.write(_routes)
print "Injecting route dependency"
update_dependencies(directory, 'ngRoute')
print("Injecting route dependency")
update_dependencies(directory, 'ngRoute')
25 changes: 18 additions & 7 deletions angular_scaffold/management/commands/helpers/_generate_service.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import os
import sys


from string import Template

_template = Template(""" ${name}${title}: function (${args}) {
Expand Down Expand Up @@ -59,12 +62,20 @@


def generate_service(directory, name=None, url=None, plural=None):
if not name:
name = raw_input("Service Name: ")
if not url:
url = raw_input("Endpoint URL: ")
if not plural:
plural = raw_input("Plural Form: ")
if (sys.version_info > (3, 0)):
if not name:
name = input("Service Name: ")
if not url:
url = input("Endpoint URL: ")
if not plural:
plural = input("Plural Form: ")
else:
if not name:
name = raw_input("Service Name: ")
if not url:
url = raw_input("Endpoint URL: ")
if not plural:
plural = raw_input("Plural Form: ")
endpoints = []
service = os.path.join("app", "services", name.lower() + "Service.js")
with open(os.path.join(directory, 'assets', service), 'w') as f:
Expand Down Expand Up @@ -101,4 +112,4 @@ def generate_service(directory, name=None, url=None, plural=None):
f.write(',\n'.join(endpoints))
f.write("""\n
};
}]);""")
}]);""")
15 changes: 10 additions & 5 deletions angular_scaffold/management/commands/helpers/_generate_view.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import sys


def _touch(fname):
Expand All @@ -25,7 +26,10 @@ def _build(path, pwd=None):

def generate_view(directory, name=None):
if not name:
name = raw_input('View Name: ')
if (sys.version_info > (3, 0)):
name = raw_input('View Name: ')
else:
name = raw_input('View Name: ')
view = os.path.join("assets", "app", "views", name + ".html")
split = name.split(os.sep)
namespace = '-'.join(split)
Expand All @@ -39,16 +43,17 @@ def generate_view(directory, name=None):
with open(os.path.join(directory, view), 'w') as f:
f.write("<div class='page %s'>\n\n</div>" % namespace)
else:
print "View Template Already Exists: %s" % namespace
print("View Template Already Exists: %s" % namespace)

# styles file
if not os.path.exists(os.path.join(directory, style)):
_build(style.split(os.sep), directory)
with open(os.path.join(directory, style), 'w') as f:
f.write(".page.%s{\n\n}" % namespace)
else:
print "View Styles Already Exists: %s" % style
print("View Styles Already Exists: %s" % style)

# import styles styles
with open(os.path.join(directory, 'assets', 'lib', 'styles', 'styles.scss'), 'a') as styles:
styles.write('\n@import "site/%s";' % name)
with open(os.path.join(directory, 'assets', 'lib', 'styles', 'styles.scss'),
'a') as styles:
styles.write('\n@import "site/%s";' % name)
6 changes: 5 additions & 1 deletion angular_scaffold/management/commands/startcontroller.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.conf import settings

from angular_scaffold.management.commands.helpers._generate_controller import generate_controller
import sys


class Command(BaseCommand):
Expand All @@ -14,7 +15,10 @@ def handle(self, *args, **options):
else:
directory = '.'
if not args:
controller_name = raw_input("Name of the controller: ")
if (sys.version_info > (3, 0)):
controller_name = input("Name of the controller: ")
else:
controller_name = raw_input("Name of the controller: ")
generate_controller(directory, controller_name)
self.stdout.write('Successfully initialized controller "%s"' % controller_name)
else:
Expand Down
10 changes: 6 additions & 4 deletions angular_scaffold/management/commands/startservice.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from django.core.management.base import BaseCommand
from django.conf import settings

from angular_scaffold.management.commands.helpers._generate_service import generate_service
from angular_scaffold.management.commands.helpers._generate_service import \
generate_service


class Command(BaseCommand):
args = '<service_name>'
help = 'Creates a new service, adds endpoints for list, get, post, put, and delete'
help = 'Creates a new service, adds endpoints for list, get, post, ' + \
'put, and delete'

def handle(self, *args, **options):
if hasattr(settings, 'BASE_DIR'):
Expand All @@ -15,8 +17,8 @@ def handle(self, *args, **options):
directory = '.'
if not args:
generate_service(directory)
print 'Successfully initialized service'
print('Successfully initialized service')
else:
for service_name in args:
generate_service(directory, service_name)
print 'Successfully initialized service "%s"' % service_name
print('Successfully initialized service "%s"' % service_name)
12 changes: 9 additions & 3 deletions angular_scaffold/management/commands/startview.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from django.core.management.base import BaseCommand
from django.conf import settings

from angular_scaffold.management.commands.helpers._generate_view import generate_view
from angular_scaffold.management.commands.helpers._generate_view import \
generate_view
import sys


class Command(BaseCommand):
Expand All @@ -14,10 +16,14 @@ def handle(self, *args, **options):
else:
directory = '.'
if not args:
view_name = raw_input("View Name: ")
if (sys.version_info > (3, 0)):
view_name = input("View Name: ")
else:
view_name = raw_input("View Name: ")
generate_view(directory, view_name)
self.stdout.write('Successfully initialized view "%s"' % view_name)
else:
for view_name in args:
generate_view(directory, view_name)
self.stdout.write('Successfully initialized view "%s"' % view_name)
self.stdout.write('Successfully initialized view "%s"' %
view_name)
6 changes: 3 additions & 3 deletions angular_scaffold/tests/addroute_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def test_view(self):
os.path.exists(os.path.join(self.BASE_DIR, 'assets', 'app', 'config', 'routes.js')))
with open(os.path.join(self.BASE_DIR, 'assets', 'app', 'config', 'routes.js'), 'r') as js:
routes = js.read()
print routes
print(routes)
self.assertTrue('app.config(function ($routeProvider) {' in routes)
self.assertTrue("controller: 'HomeController'," in routes)
self.assertTrue("templateUrl: '/static/app/views/home.html'" in routes)
Expand All @@ -32,10 +32,10 @@ def test_multiple_view(self):
os.path.exists(os.path.join(self.BASE_DIR, 'assets', 'app', 'config', 'routes.js')))
with open(os.path.join(self.BASE_DIR, 'assets', 'app', 'config', 'routes.js'), 'r') as js:
routes = js.read()
print routes
print(routes)
self.assertTrue('app.config(function ($routeProvider) {' in routes)
self.assertTrue("controller: 'ProjectController'," in routes)
self.assertTrue("templateUrl: '/static/app/views/project/home.html'" in routes)

def tearDown(self):
shutil.rmtree(os.path.join(self.BASE_DIR, 'assets'))
shutil.rmtree(os.path.join(self.BASE_DIR, 'assets'))