Exemple #1
0
    def handle(self, args):
        """Handles the command."""
        try:
            logger().info('> Clearing the dataset...')
            DatabaseHelper.clear()

            SeedCommand(self.application).handle(args)
        except KeyboardInterrupt:
            logger().warning('Refreshing was canceled.')
Exemple #2
0
    def handle(self, args: argparse.Namespace):
        """
        Handles the command.

        Args:
            args: The command arguments
        """
        try:
            logger = logging.logger()

            logger.info('> Clearing datasets...')
            datasets.Database.clear()

            seed.SeedCommand(self.application).handle(args)
        except KeyboardInterrupt:
            self._parser.terminate('Refreshing was canceled.')
Exemple #3
0
    def handle(self, args: argparse.Namespace):
        """
        Handles the command.

        Args:
            args: The command arguments
        """
        try:
            logger = logging.logger()

            logger.info('> Clearing datasets...')
            datasets.Database.clear()

            seed.SeedCommand(self.application).handle(args)
        except KeyboardInterrupt:
            self._parser.terminate('Refreshing was canceled.')
Exemple #4
0
    def handle(self, args: argparse.Namespace):
        """
        Handles the command.

        Args:
            args: The command arguments
        """
        if not args.format:
            self._parser.error(
                'You need to give the output format you want to encode.')

        i18n.Translator.locale = args.locale
        logger = logging.logger()

        try:
            encoder = encoders.EncoderFactory.fromFormat(args.format)
            serializer = serializers.Serializer(**encoder.serializationOptions)
            entity_map = dict(zip(schema.TABLES, schema.ENTITIES))

            logger.info('Encoding dataset to %s format...',
                        encoder.format.friendlyName)

            dataset_dir = io.Directory(io.Path.DATA_DIR / args.locale)
            dataset_dir.create(parents=True)

            with dataset_dir:
                if encoder.format.isFlatFile:
                    for table in args.tables:
                        table_name = i18n._(table)
                        entity = (entity_map.get(table),)
                        encoder.encodeToFile(
                            serializer.serialize(entity).get(table_name),
                            '{dataset_name}-{table_name}{extension}'.format(
                                dataset_name=i18n._('dataset_name'),
                                table_name=table_name,
                                extension=encoder.format.extension))

                    return

                encoder.encodeToFile(
                    serializer.serialize(tuple(entity_map.get(table)
                                               for table in args.tables)),
                    i18n._('dataset_name') + encoder.format.extension)
        except encoders.EncodeError:
            self._parser.error('Failed to encode dataset.')
        except KeyboardInterrupt:
            self._parser.terminate('Encoding was canceled.')
Exemple #5
0
    def handle(self, args):
        """Handles the command."""
        try:
            DatabaseHelper.create()

            for entity in Entities:
                logger().info('> Seeding table "%s"...', entity.__table__.name)

                try:
                    SeederFactory(entity).run()
                except NothingToSeedError:
                    logger().warning('Nothing to seed.')
        except KeyboardInterrupt:
            logger().warning('Seeding was canceled.')
Exemple #6
0
    def handle(self, args: argparse.Namespace):
        """
        Handles the command.

        Args:
            args: The command arguments
        """
        try:
            logger = logging.logger()
            datasets.Database.create()

            for entity in schema.ENTITIES:
                logger.info('> Seeding dataset "%s"...', entity.__table__.name)

                try:
                    seeders.SeederFactory.fromEntity(entity).run()
                except seeders.NothingToSeedError:
                    logger.warning('Nothing to seed.')
        except KeyboardInterrupt:
            self._parser.terminate('Seeding was canceled.')
Exemple #7
0
    def handle(self, args: argparse.Namespace):
        """
        Handles the command.

        Args:
            args: The command arguments
        """
        try:
            logger = logging.logger()
            datasets.Database.create()

            for entity in schema.ENTITIES:
                logger.info('> Seeding dataset "%s"...', entity.__table__.name)

                try:
                    seeders.SeederFactory.fromEntity(entity).run()
                except seeders.NothingToSeedError:
                    logger.warning('Nothing to seed.')
        except KeyboardInterrupt:
            self._parser.terminate('Seeding was canceled.')
Exemple #8
0
    def handle(self, args: argparse.Namespace):
        """
        Handles the command.

        Args:
            args: The command arguments
        """
        try:
            encoder = encode.EncodeCommand(self.application)
            logger = logging.logger()

            for locale in args.locales:
                i18n.Translator.locale = locale

                logger.info('> Building locale: %s', locale)

                dataset_dir = io.Directory(io.Path.DATA_DIR / locale)
                dataset_dir.create(parents=True)

                with dataset_dir:
                    for dataset_format in args.formats:
                        encoder.configure()
                        encoder.handle(encoder.parse([
                            '--format', dataset_format,
                            '--locale', locale]))

                    logger.info('Generating dataset README file...')

                    documentation.DatasetReadme(dataset_dir).write()

            logger.info('Generating project README file...')

            documentation.ProjectReadme().write()
        except encoders.EncodeError:
            self._parser.error('Failed to build dataset.')
        except KeyboardInterrupt:
            self._parser.terminate('Building was canceled.')
Exemple #9
0
    def handle(self, args: Namespace):
        """Handles the command."""
        if not args.format:
            self._parser.error(
                'You need to give the output format you want to encode.')

        Translator.locale = args.locale

        try:
            encoder = EncoderFactory.fromFormat(args.format)

            logger().info('Encoding dataset to %s format...',
                          encoder.format().friendlyName)

            serializer = encoder.serializer(**encoder.serializationOptions)
            encoder.encodeToFile(serializer.serialize(), args.filename)
        except EncodeError:
            logger().error('Failed to encode dataset.')
        except KeyboardInterrupt:
            logger().info('Encoding was canceled.')
Exemple #10
0
    def handle(self, args):
        """Handles the command."""
        try:
            for locale in args.locales:
                Translator.locale = locale

                logger().info('> Building locale: %s', locale)

                dataset_dir = DATA_DIR / locale
                dataset_dir.create(parents=True)

                with dataset_dir:
                    for dataset_format in args.formats:
                        encoder = EncoderFactory.fromFormat(dataset_format)

                        logger().info('Encoding dataset to %s format...',
                                      encoder.format().friendlyName)

                        serializer = encoder.serializer(
                            **encoder.serializationOptions)

                        encoder.encodeToFile(serializer.serialize())

                    logger().info('Generating dataset README file...')

                    DatasetReadme(dataset_dir).write()

            logger().info('Generating project README file...')

            ProjectReadme().write()
        except EncodeError:
            logger().error('Failed to encode dataset.')
        except KeyboardInterrupt:
            logger().info('Building was canceled.')