예제 #1
0
파일: exporter.py 프로젝트: muddery/muddery
def export_zip_all(file_obj, file_type=None):
    """
    Export all tables to a zip file which contains a group of csv files.
    """
    if not file_type:
        # Set default file type.
        file_type = "csv"

    writer_class = writers.get_writer(file_type)
    if not writer_class:
        raise(MudderyError(ERR.export_data_error, "Unsupport file type %s" % file_type))

    # Get tempfile's name.
    temp = tempfile.mktemp()
    file_ext = writer_class.file_ext

    try:
        archive = zipfile.ZipFile(file_obj, 'w', zipfile.ZIP_DEFLATED)

        # get model names
        models = model_mapper.get_all_models()
        for model in models:
            model_name = model._meta.object_name
            export_file(temp, model_name, file_type)
            filename = model_name + "." + file_ext
            archive.write(temp, filename)

        # add version file
        version_file = os.path.join(GAME_DIR, configs.CONFIG_FILE)
        archive.write(version_file, configs.CONFIG_FILE)
    finally:
        os.remove(temp)
예제 #2
0
def query_tables():
    """
    Query all tables' names.
    """
    models = model_mapper.get_all_models()
    models_info = [{"key": model.__name__,
                    "name": _(model.__name__, category="models") + "(" + model.__name__ + ")"}
                    for model in models if model._meta.app_label == "worlddata"]
    return models_info
예제 #3
0
파일: importer.py 프로젝트: muddery/muddery
def import_data_path(path, clear=True):
    """
    Import data from path.

    Args:
        path: (string) data path.
    """

    # import tables one by one
    models = model_mapper.get_all_models()
    for model in models:
        table_name = model.__name__
        file_names = glob.glob(os.path.join(path, table_name) + ".*")

        if file_names:
            print("Importing %s" % file_names[0])
            try:
                import_file(file_names[0], table_name=table_name, clear=clear)
            except Exception, e:
                print("Import error: %s" % e)
예제 #4
0
def import_data_path(path, clear=True):
    """
    Import data from path.

    Args:
        path: (string) data path.
    """

    # import tables one by one
    models = model_mapper.get_all_models()
    for model in models:
        table_name = model.__name__
        file_names = glob.glob(os.path.join(path, table_name) + ".*")

        if file_names:
            print("Importing %s" % file_names[0])
            try:
                import_file(file_names[0], table_name=table_name, clear=clear)
            except Exception as e:
                print("Import error: %s" % e)
예제 #5
0
def export_zip_all(file_obj, file_type=None):
    """
    Export all tables to a zip file which contains a group of csv files.
    """
    if not file_type:
        # Set default file type.
        file_type = "csv"

    writer_class = writers.get_writer(file_type)
    if not writer_class:
        raise (MudderyError(ERR.export_data_error,
                            "Unsupport file type %s" % file_type))

    # Get tempfile's name.
    temp_filename = tempfile.mktemp()
    file_ext = writer_class.file_ext

    try:
        archive = zipfile.ZipFile(file_obj, 'w', zipfile.ZIP_DEFLATED)

        # get model names
        models = model_mapper.get_all_models()
        for model in models:
            model_name = model._meta.object_name
            export_file(temp_filename, model_name, file_type)
            filename = model_name + "." + file_ext
            archive.write(temp_filename, filename)

        # add version file
        version_file = os.path.join(GAME_DIR, configs.CONFIG_FILE)
        archive.write(version_file, configs.CONFIG_FILE)
    finally:
        try:
            os.remove(temp_filename)
        except PermissionError:
            pass