# Path: django_sonic_screwdriver/settings.py
# USER_SETTINGS = getattr(settings, "SONIC_SCREWDRIVER", None)
# DEFAULTS = {
#     "DEBUG": False,
#     # Returns file where the version number is located
#     "VERSION_FILE": "setup.py",
#     "RELEASE_SEPARATOR": "",
#     "PATCH_AUTO_TAG": False,
#     # Git
#     "GIT_DIR": settings.BASE_DIR,
#     # Git Tagging
#     "GIT_TAG_AUTO_TAG_PUSH": False,
#     "GIT_STAGING_PRE_TAG": "staging",
#     "GIT_ACTIVATE_PRE_TAG": "activate",
#     "SECURE_TAGGING": True,
#     # App Ban
#     "BAN_REMOTE_ADDR_HEADER": "REMOTE_ADDR",
#     "BAN_DEFAULT_END_TIME": 60 * 60,
# }
# class APISettings(object):
#     def __init__(self, user_settings=None, defaults=None):
#     def __getattr__(self, attr):
# 
# Path: django_sonic_screwdriver/version.py
# RELEASE_TAGS = {
#     # pre-release
#     "ALPHA": "a",
#     "BETA": "b",
#     "RC": "rc",
#     # dev-release
#     "DEV": "dev",
#     # post-release
# }
# RELEASE_SEPARATORS = {"DOT": ".", "MINUS": "-", "UNDERSCORE": "_"}
# class Version:
#     def get_version():
#     def set_version(old_version, new_version):
#     def get_patch_version(version):
#     def get_current_RELEASE_SEPARATOR(patch):
#     def get_current_pre_release_tag(patch):
#     def set_major(self):
#     def set_minor(self):
#     def set_patch(self, pre_release_tag=""):
#     def __init__(self, release_tags=None):
#     def __getattr__(self, attr):
# 
# Path: django_sonic_screwdriver/git/git.py
# GIT_OPTIONS = {
#     "DEVELOPMENT": "development",
#     "STAGING": "staging",
#     "PRODUCTION": "production",
# }
# class Git:
#     def create_git_version_tag(deploy_tag):
#     def get_current_branch():
#     def get_latest_tag():
#     def check_existence_of_staging_tag_in_remote_repo():
#     def __debug(command, dry=False):
#     def __git_tag(git_tag):
#     def __git_tag_gpg(git_tag):
#     def __git_tag_push():
#     def __git_tag_delete(git_tag):
#     def __git_push(self):
#     def tag(self, deploy_tag=""):
#     def push_tags(self):
#     def tag_delete(self, tag):


from django.core.management.base import BaseCommand
from django_sonic_screwdriver.settings import api_settings
from django_sonic_screwdriver.version import version
from django_sonic_screwdriver.git import git
        If option '--force', '-f' is set this part will be skipped.
        """
        if not options["force"]:
            counter = 0
            for key in options:
                if options[key]:
                    counter += 1

            # If no options are set, do a normal patch
            if counter == 1:
                options["patch"] = True

            # more then one options are not enabled per default
            if counter >= 3:
                # TODO: Raise Error!
                exit(
                    "It is not recommended to use more then one parameter. "
                    "Use -f to force your command."
                )

        if options["major"]:
            version.set_major()

        if options["minor"]:
            version.set_minor()

        if options["patch"]:
            version.set_patch()

        if options["dev"]:

# Path: django_sonic_screwdriver/settings.py
# USER_SETTINGS = getattr(settings, "SONIC_SCREWDRIVER", None)
# DEFAULTS = {
#     "DEBUG": False,
#     # Returns file where the version number is located
#     "VERSION_FILE": "setup.py",
#     "RELEASE_SEPARATOR": "",
#     "PATCH_AUTO_TAG": False,
#     # Git
#     "GIT_DIR": settings.BASE_DIR,
#     # Git Tagging
#     "GIT_TAG_AUTO_TAG_PUSH": False,
#     "GIT_STAGING_PRE_TAG": "staging",
#     "GIT_ACTIVATE_PRE_TAG": "activate",
#     "SECURE_TAGGING": True,
#     # App Ban
#     "BAN_REMOTE_ADDR_HEADER": "REMOTE_ADDR",
#     "BAN_DEFAULT_END_TIME": 60 * 60,
# }
# class APISettings(object):
#     def __init__(self, user_settings=None, defaults=None):
#     def __getattr__(self, attr):
# 
# Path: django_sonic_screwdriver/version.py
# RELEASE_TAGS = {
#     # pre-release
#     "ALPHA": "a",
#     "BETA": "b",
#     "RC": "rc",
#     # dev-release
#     "DEV": "dev",
#     # post-release
# }
# RELEASE_SEPARATORS = {"DOT": ".", "MINUS": "-", "UNDERSCORE": "_"}
# class Version:
#     def get_version():
#     def set_version(old_version, new_version):
#     def get_patch_version(version):
#     def get_current_RELEASE_SEPARATOR(patch):
#     def get_current_pre_release_tag(patch):
#     def set_major(self):
#     def set_minor(self):
#     def set_patch(self, pre_release_tag=""):
#     def __init__(self, release_tags=None):
#     def __getattr__(self, attr):
# 
# Path: django_sonic_screwdriver/git/git.py
# GIT_OPTIONS = {
#     "DEVELOPMENT": "development",
#     "STAGING": "staging",
#     "PRODUCTION": "production",
# }
# class Git:
#     def create_git_version_tag(deploy_tag):
#     def get_current_branch():
#     def get_latest_tag():
#     def check_existence_of_staging_tag_in_remote_repo():
#     def __debug(command, dry=False):
#     def __git_tag(git_tag):
#     def __git_tag_gpg(git_tag):
#     def __git_tag_push():
#     def __git_tag_delete(git_tag):
#     def __git_push(self):
#     def tag(self, deploy_tag=""):
#     def push_tags(self):
#     def tag_delete(self, tag):


# Path: django_sonic_screwdriver/management/commands/patch.py
from django.core.management.base import BaseCommand
from django_sonic_screwdriver.settings import api_settings
from django_sonic_screwdriver.version import version
from django_sonic_screwdriver.git import git

        If option '--force', '-f' is set this part will be skipped.
        """
        if not options["force"]:
            counter = 0
            for key in options:
                if options[key]:
                    counter += 1

            # If no options are set, do a normal patch
            if counter == 1:
                options["patch"] = True

            # more then one options are not enabled per default
            if counter >= 3:
                # TODO: Raise Error!
                exit(
                    "It is not recommended to use more then one parameter. "
                    "Use -f to force your command."
                )

        if options["major"]:
            version.set_major()

        if options["minor"]:
            version.set_minor()

        if options["patch"]:
            version.set_patch()

        if options["dev"]:

            version.set_patch(version.DEV)