Skip to content

New report project

New Report Project.

Setup configuration files and directories for report project.

Will have more info soon

create_new_project(settings_dict=None)

Create new report project.

Creates a new report project.

Examples:

Example of use.

Source code in report_generator/project_setup/new_report_project.py
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def create_new_project(settings_dict: dict = None) -> None:
    """Create new report project.

    Creates a new report project.

    Examples:
        Example of use.

    """
    HOME_DIR = pathlib.Path.home()
    logger.info("Starting new Project")
    try:
        settings = get_project_settings(settings_dict)
        dir_path = report_generator.project_setup.project_directory_setup.create_dirs(
            HOME_DIR, settings["project_name"]
        )
        settings["dir_path"] = dir_path
        create_project_config_file(settings)

        report_generator.project_setup.locations_data_setup.insert_default_data(
            dir_path
        )
        # dir_path = os.path.join(HOME_DIR, "c",)
        time.sleep(5)
        report_generator.project_setup.locations_db_setup.locations_database_setup(
            os.path.join(dir_path, "data", "locations")
        )
        time.sleep(5)
        report_generator.project_setup.locations_json_setup.locations_json_setup(
            os.path.join(dir_path, "data", "locations")
        )

        database_path = os.path.join(dir_path, "data", "database", "species.db")

        report_generator.excel_extraction.excel_to_sql.export_to_database(
            settings["data_set"], database_path
        )

        logger.info("Report Project set up complete!")
    except FileExistsError as e:
        logger.error(e)
    except FileNotFoundError as e:
        logger.error(e)
    except KeyboardInterrupt as e:
        logger.error(e)
        logger.error("Quitting Application...")

create_project_config_file(settings)

Create the project config file.

Creates a Yaml file containing all project's basic settings.

Examples:

Example of use.

Source code in report_generator/project_setup/new_report_project.py
131
132
133
134
135
136
137
138
139
140
141
142
def create_project_config_file(settings: dict) -> None:
    """Create the project config file.

    Creates a Yaml file containing all project's
    basic settings.

    Examples:
        Example of use.

    """
    with open("config.yaml", "w", encoding="utf-8") as file:
        yaml.dump(settings, file)

get_project_settings(settings=None)

CLI to query project setup from user.

Gets a series of user inputs to set up the config files for the project.

Examples:

Example of use.

Parameters:

Name Type Description Default
Settings dict

Settings dict that is provided if user doing set up from the GUI application rather than the CLI.

required
Source code in report_generator/project_setup/new_report_project.py
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
def get_project_settings(settings: dict = None) -> None:
    """CLI to query project setup from user.

    Gets a series of user inputs to set up the config
    files for the project.

    Examples:
        Example of use.

    Args:
        Settings (dict): Settings dict that is provided if user doing set up
                         from the GUI application rather than the CLI.

    """
    if settings is None:

        print("\nCreating new project")
        project_name = input("Please enter project name: ")
        report_name = input("Please enter report name: ")
        author_name = input("Please enter author name: ")
        school_name = input("Please enter School name: ")
        uni_name = input("Please enter uni name: ")
        data_set = input("Please enter path to data_set file: ")

        settings = {
            "project_name": project_name,
            "report_name": report_name,
            "author_name": author_name,
            "school_name": school_name,
            "uni_name": uni_name,
            "data_set": data_set,
            "fonts": {
                "header_colour": "Black",
                "header_font": "Helvetica",
                "header_size": 48,
                "paragraph_colour": "Black",
                "paragraph_font": "Helvetica",
                "paragraph_size": 10,
                "title_colour": "Red",
                "title_font": "OpenSans-Bold",
                "title_size": 56,
                "title_sub": "OpenSans",
            },
        }
    else:
        settings["fonts"] = {
            "header_colour": "Black",
            "header_font": "Helvetica",
            "header_size": 48,
            "paragraph_colour": "Black",
            "paragraph_font": "Helvetica",
            "paragraph_size": 10,
            "title_colour": "Red",
            "title_font": "OpenSans-Bold",
            "title_size": 56,
            "title_sub": "OpenSans",
        }
    return settings

main()

Create new Report.

Main method for module.

Example

Example use case.

Source code in report_generator/project_setup/new_report_project.py
145
146
147
148
149
150
151
152
153
def main():
    """Create new Report.

    Main method for module.

    Example:
        Example use case.
    """
    create_new_project()