<commit_before># -*- coding: utf-8 -*-
"""
projector.py -- (back-)projections in tomography

Copyright 2014, 2015 <NAME>

This file is part of RL.

RL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

RL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with RL.  If not, see <http://www.gnu.org/licenses/>.
"""

from __future__ import division
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import absolute_import
from builtins import super
from future import standard_library
standard_library.install_aliases()

# import numpy as np
from functools import partial

# import RL.datamodel.gfunc as gf
# import RL.utility.fourier as ft
# from RL.utility.fourier import FourierProjector, FreqGeomGraphWarp
from RL.operator.operator import Operator  # , LinearOperator
# from RL.utility.utility import euler_matrix, errfmt


class Projector(Operator):
    """Base class for tomographic projections.
    TODO: write some more.
    """

    def __init__(self, projection, geometry):

        proj_map = partial(projection, geometry)
        super().__init__(proj_map)

        self._projection = projection
        self._geometry = geometry

    @property
    def projection(self):
        return self._projection

    @property
    def geometry(self):
        return self._geometry


class BackProjector(Operator):
    """Base class for tomographic backprojections.
    TODO: write some more.
    """

    def __init__(self, backprojection, geometry):

        backproj_map = partial(backprojection, geometry)
        super().__init__(backproj_map)

        self._backprojection = backprojection
        self._geometry = geometry

    @property
    def backprojection(self):
        return self._backprojection

    @property
    def geometry(self):<commit_msg>allow additional keyword arguments in __init__<commit_after># -*- coding: utf-8 -*-
"""
projector.py -- (back-)projections in tomography

Copyright 2014, 2015 <NAME>

This file is part of RL.

RL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

RL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with RL.  If not, see <http://www.gnu.org/licenses/>.
"""

from __future__ import division
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import absolute_import
from builtins import super
from future import standard_library
standard_library.install_aliases()

# import numpy as np
from functools import partial

# import RL.datamodel.gfunc as gf
# import RL.utility.fourier as ft
# from RL.utility.fourier import FourierProjector, FreqGeomGraphWarp
from RL.operator.operator import Operator  # , LinearOperator
# from RL.utility.utility import euler_matrix, errfmt


class Projector(Operator):
    """Base class for tomographic projections.
    TODO: write some more.
    """

    def __init__(self, projection, geometry, **kwargs):

        proj_map = partial(projection, geometry, **kwargs)
        super().__init__(proj_map)

        self._projection = projection
        self._geometry = geometry

    @property
    def projection(self):
        return self._projection

    @property
    def geometry(self):
        return self._geometry


class BackProjector(Operator):
    """Base class for tomographic backprojections.
    TODO: write some more.
    """

    def __init__(self, backprojection, geometry, **kwargs):

        backproj_map = partial(backprojection, geometry, **kwargs)
        super().__init__(backproj_map)

        self._backprojection = backprojection
        self._geometry = geometry

    @property
    def backprojection(self):
        return self._backprojection

    @property
    def geometry(self):
{'fraction_non_alphanumeric': 0.06986513376077824, 'fraction_numerical': 0.004421843908910016, 'mean_word_length': 3.7125, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2728603', 'n_tokens_mistral': 1266, 'n_tokens_neox': 1181, 'n_words': 474}