Skip to content

Commit

Permalink
重构
Browse files Browse the repository at this point in the history
  • Loading branch information
zhanghao committed Jul 9, 2024
1 parent c208bc8 commit 60c31bd
Show file tree
Hide file tree
Showing 45 changed files with 611 additions and 478 deletions.
25 changes: 0 additions & 25 deletions .idea/appcenter.iml

This file was deleted.

8 changes: 7 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions .run/DjangoAppCenter.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="DjangoAppCenter" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
<module name="DjangoAppCenter" />
<option name="ENV_FILES" value="" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="SDK_NAME" value="Python 3.12 (DjangoAppCenter)" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="DjangoAppCenter" />
<option name="PARAMETERS" value="dev runserver" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="true" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>
Binary file not shown.
1 change: 1 addition & 0 deletions DjangoAppCenter/__main__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys

Expand Down
12 changes: 6 additions & 6 deletions DjangoAppCenter/cli.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# encoding: utf-8

import os
import sys

import fire

from DjangoAppCenter.settings.loader import init_profile, CWD_SETTINGS_PATH
from DjangoAppCenter.settings.loader import load_settings_from_file
from DjangoAppCenter.settings.storage import django_app_center_settings
from DjangoAppCenter.utils import get_python_version

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Expand Down Expand Up @@ -40,7 +41,7 @@ def deploy(reload: bool = True, use_nginx: bool = False):
run django with uwsgi
"""
os.environ.setdefault('DAC_ENVIRON', 'PROD')
custom_settings = load_settings_from_file()
custom_settings = django_app_center_settings
static_root = custom_settings.get('STATIC_ROOT', 'statics')
wsgi_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'wsgi.py')
served_hosts = custom_settings.get('DAC_SERVED_HOSTS', '0.0.0.0')
Expand All @@ -50,7 +51,7 @@ def deploy(reload: bool = True, use_nginx: bool = False):
if reload:
os.system(
"uwsgi --py-autoreload=1 --touch-reload=%s --socket=%s:%s --file=%s --static-map=/static=%s --logto appcenter-wsgi.log" % (
CWD_SETTINGS_PATH, served_hosts, str(port), wsgi_path, static_root))
BASE_SETTINGS_PATH, served_hosts, str(port), wsgi_path, static_root))
else:
os.system(
"uwsgi --touch-reload=%s --socket=%s:%s --file=%s --static-map=/static=%s --logto appcenter-wsgi.log" % (
Expand All @@ -59,7 +60,7 @@ def deploy(reload: bool = True, use_nginx: bool = False):
if reload:
os.system(
"uwsgi --py-autoreload=1 --touch-reload=%s --http=%s:%s --file=%s --static-map=/static=%s --logto appcenter-wsgi.log" % (
CWD_SETTINGS_PATH, served_hosts, str(port), wsgi_path, static_root))
BASE_SETTINGS_PATH, served_hosts, str(port), wsgi_path, static_root))
else:
os.system(
"uwsgi --touch-reload=%s --http=%s:%s --file=%s --static-map=/static=%s --logto appcenter-wsgi.log" % (
Expand All @@ -71,5 +72,4 @@ def entry():
'dev': dev,
'prod': prod,
'deploy': deploy,
'init': init_profile
})
Empty file removed DjangoAppCenter/dtos/__init__.py
Empty file.
23 changes: 0 additions & 23 deletions DjangoAppCenter/dtos/ret.py

This file was deleted.

Empty file.
8 changes: 0 additions & 8 deletions DjangoAppCenter/extensions/fields/snowflake/__init__.py

This file was deleted.

50 changes: 0 additions & 50 deletions DjangoAppCenter/extensions/fields/snowflake/config.py

This file was deleted.

40 changes: 0 additions & 40 deletions DjangoAppCenter/extensions/fields/snowflake/core.py

This file was deleted.

9 changes: 0 additions & 9 deletions DjangoAppCenter/extensions/fields/snowflake/field.py

This file was deleted.

19 changes: 0 additions & 19 deletions DjangoAppCenter/middlewares/exception_catcher.py

This file was deleted.

21 changes: 21 additions & 0 deletions DjangoAppCenter/middlewares/global_exception_handler.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import logging

from django.http import HttpResponseBadRequest, JsonResponse

logger = logging.getLogger("exception")


class CustomException(Exception):
pass


class GlobalExceptionHandler(object):
def process_exception(self, request, exception):
logger.exception(exception)

if isinstance(exception, CustomException):
logger.error(f"CustomException: {exception}")
return JsonResponse({'msg': str(exception), 'code': -1})
else:
logger.error(f"GlobalExceptionHandler: {exception}")
return HttpResponseBadRequest()
6 changes: 3 additions & 3 deletions DjangoAppCenter/packages/admin.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from django.contrib import admin

from DjangoAppCenter.packages.models import Package
from DjangoAppCenter.settings import load_settings_from_file
from DjangoAppCenter.settings.storage import django_app_center_settings

# Register your models here.
admin.site.register(Package)
admin.site.site_title = load_settings_from_file().get("ADMIN_SITE_TITLE", "DjangoAppCenter")
admin.site.site_header = load_settings_from_file().get("ADMIN_SITE_HEADER", "DjangoAppCenter")
admin.site.site_title = django_app_center_settings.get("ADMIN_SITE_TITLE", "DjangoAppCenter")
admin.site.site_header = django_app_center_settings.get("ADMIN_SITE_HEADER", "DjangoAppCenter")
4 changes: 3 additions & 1 deletion DjangoAppCenter/packages/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@


class PackagesConfig(AppConfig):
name = 'packages'
name = 'DjangoAppCenter.packages'
verbose_name = '包管理'
default_auto_field = 'django.db.models.AutoField'
64 changes: 64 additions & 0 deletions DjangoAppCenter/packages/handler.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import json
import os
from datetime import datetime

from settings import BASE_DIR


class PackageEventHandler:
TOUCH_RELOAD_FILE = os.path.join(BASE_DIR, 'package-event.log')

@staticmethod
def write_event(func):
def wrapper():
event = func()
with open(PackageEventHandler.TOUCH_RELOAD_FILE, 'w') as f:
f.write(f'{json.dumps(event, ensure_ascii=False)}\n')

return wrapper

@staticmethod
@write_event
def on_package_installed(package_name: str,
package_version: str,
old_config_snapshot_version: str,
new_config_snapshot_version: str):
return {
'event': 'package_installed',
'package_name': package_name,
'package_version': package_version,
'old_config_snapshot_version': old_config_snapshot_version,
'new_config_snapshot_version': new_config_snapshot_version,
'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
}

@staticmethod
@write_event
def on_package_uninstalled(package_name: str,
package_version: str,
old_config_snapshot_version: str,
new_config_snapshot_version: str):
return {
'event': 'package_uninstalled',
'package_name': package_name,
'package_version': package_version,
'old_config_snapshot_version': old_config_snapshot_version,
'new_config_snapshot_version': new_config_snapshot_version,
'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
}

@staticmethod
def on_package_updated(package_name: str,
package_old_version: str,
package_new_version: str,
old_config_snapshot_version: str,
new_config_snapshot_version: str):
return {
'event': 'package_updated',
'package_name': package_name,
'package_old_version': package_old_version,
'package_new_version': package_new_version,
'old_config_snapshot_version': old_config_snapshot_version,
'new_config_snapshot_version': new_config_snapshot_version,
'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
}
Loading

0 comments on commit 60c31bd

Please sign in to comment.