falgopy


Namefalgopy JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryA powerful falgopy package
upload_time2024-06-29 13:32:47
maintainerNone
docs_urlNone
authorZohar franco
requires_pythonNone
licenseNone
keywords cs data data structures falgopy algo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # How to use

```

# Binary search example
from falgopy.searching.searching_algorithm.searching_algorithm_input import SearchingAlgorithmInput
from falgopy.searching.algorithms.binary_search.binary_search import BinarySearch

result = BinarySearch(SearchingAlgorithmInput(list_to_search=[1, 2, 3], target=2)).run()
print(result.target_index)


# Round rubin example

from falgopy.scheduling.algorithms.round_robin.round_robin import RoundRobin
from falgopy.scheduling.algorithms.round_robin.round_robin_input import RoundRobinInput
from falgopy.utils.models.task import Task

result = RoundRobin(
    RoundRobinInput(
        pool=[
            Task(name="Task 1", remaining_time=10),
            Task(name="Task 2", remaining_time=5),
            Task(name="Task 3", remaining_time=3),
            Task(name="Task 4", remaining_time=1),
        ],
        time_slice=6)
).run()

print(result.queue)
```

# Algorithms

- Base classes (utils)
- Fundamentals ideas
- Variety of algorithms implementations

Abstract algorithm

```
class Algorithm:

    def __init__(self, algorithm_input: AlgorithmInput):

    @abstractmethod
    def run(self) -> AlgorithmOutput:

    def check_run_time(self):
```

## Algorithms types

### Search

Searching abstract algorithm

```

class SearchingAlgorithm(Algorithm):
    def __init__(self, algorithm_input: SearchingAlgorithmInput):
        
    @abstractmethod
    def search(self) -> SearchingAlgorithmOutput:
        
    def run(self) -> SearchingAlgorithmOutput:
        """
        Run the algorithm
        Returns: return searching algorithm output
        """
        algoritm_output = self.search()
        self.logger.info(f"Total iterations: {algoritm_output.total_search_iterations}")
        return algoritm_output
```

Examples

- Binary search
-

### Sort

Sorting abstract algorithm

```
class SortingAlgorithm(Algorithm):
    def __init__(self, algorithm_input: SortingAlgorithmInput):
        
    @abstractmethod
    def get_sorted_list(self) -> SortingAlgorithmOutput:
        
    def run(self) -> SortingAlgorithmOutput:
        """
        Run the algorithm
        Returns: yield next value in schedule
        """
        return self.get_sorted_list()
```

Examples

- Binary Sort
- Bubble Sort
- Sort

### Scheduling

Sorting abstract algorithm

```
class SchedulingAlgorithm(Algorithm):
    def __init__(self, algorithm_input: SchedulingAlgorithmInput):
        
    @abstractmethod
    def is_done(self):
        
    @abstractmethod
    def schedule_next(self):
        
    def run(self) -> SchedulingAlgorithmOutput:
        """
        Run the algorithm
        Returns: yield next value in schedule
        """

        while not self.is_done():
            self.schedule_next()
            self.logger.info(
                f"Pool: {self.algorithm_input.pool}, "
                f"Queue: {self.algoritm_output.queue}, "
                f"Total time: {self.algoritm_output.total_time}"
            )
        return self.algoritm_output
```

Examples

- Round Robin
- 



            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "falgopy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "CS data data structures falgopy algo",
    "author": "Zohar franco",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/95/74/f0dbe373be219b1f7bc8acd7795a22e5f16e6903af5f9285c3cdef7c4c7b/falgopy-3.0.0.tar.gz",
    "platform": null,
    "description": "# How to use\n\n```\n\n# Binary search example\nfrom falgopy.searching.searching_algorithm.searching_algorithm_input import SearchingAlgorithmInput\nfrom falgopy.searching.algorithms.binary_search.binary_search import BinarySearch\n\nresult = BinarySearch(SearchingAlgorithmInput(list_to_search=[1, 2, 3], target=2)).run()\nprint(result.target_index)\n\n\n# Round rubin example\n\nfrom falgopy.scheduling.algorithms.round_robin.round_robin import RoundRobin\nfrom falgopy.scheduling.algorithms.round_robin.round_robin_input import RoundRobinInput\nfrom falgopy.utils.models.task import Task\n\nresult = RoundRobin(\n    RoundRobinInput(\n        pool=[\n            Task(name=\"Task 1\", remaining_time=10),\n            Task(name=\"Task 2\", remaining_time=5),\n            Task(name=\"Task 3\", remaining_time=3),\n            Task(name=\"Task 4\", remaining_time=1),\n        ],\n        time_slice=6)\n).run()\n\nprint(result.queue)\n```\n\n# Algorithms\n\n- Base classes (utils)\n- Fundamentals ideas\n- Variety of algorithms implementations\n\nAbstract algorithm\n\n```\nclass Algorithm:\n\n    def __init__(self, algorithm_input: AlgorithmInput):\n\n    @abstractmethod\n    def run(self) -> AlgorithmOutput:\n\n    def check_run_time(self):\n```\n\n## Algorithms types\n\n### Search\n\nSearching abstract algorithm\n\n```\n\nclass SearchingAlgorithm(Algorithm):\n    def __init__(self, algorithm_input: SearchingAlgorithmInput):\n        \n    @abstractmethod\n    def search(self) -> SearchingAlgorithmOutput:\n        \n    def run(self) -> SearchingAlgorithmOutput:\n        \"\"\"\n        Run the algorithm\n        Returns: return searching algorithm output\n        \"\"\"\n        algoritm_output = self.search()\n        self.logger.info(f\"Total iterations: {algoritm_output.total_search_iterations}\")\n        return algoritm_output\n```\n\nExamples\n\n- Binary search\n-\n\n### Sort\n\nSorting abstract algorithm\n\n```\nclass SortingAlgorithm(Algorithm):\n    def __init__(self, algorithm_input: SortingAlgorithmInput):\n        \n    @abstractmethod\n    def get_sorted_list(self) -> SortingAlgorithmOutput:\n        \n    def run(self) -> SortingAlgorithmOutput:\n        \"\"\"\n        Run the algorithm\n        Returns: yield next value in schedule\n        \"\"\"\n        return self.get_sorted_list()\n```\n\nExamples\n\n- Binary Sort\n- Bubble Sort\n- Sort\n\n### Scheduling\n\nSorting abstract algorithm\n\n```\nclass SchedulingAlgorithm(Algorithm):\n    def __init__(self, algorithm_input: SchedulingAlgorithmInput):\n        \n    @abstractmethod\n    def is_done(self):\n        \n    @abstractmethod\n    def schedule_next(self):\n        \n    def run(self) -> SchedulingAlgorithmOutput:\n        \"\"\"\n        Run the algorithm\n        Returns: yield next value in schedule\n        \"\"\"\n\n        while not self.is_done():\n            self.schedule_next()\n            self.logger.info(\n                f\"Pool: {self.algorithm_input.pool}, \"\n                f\"Queue: {self.algoritm_output.queue}, \"\n                f\"Total time: {self.algoritm_output.total_time}\"\n            )\n        return self.algoritm_output\n```\n\nExamples\n\n- Round Robin\n- \n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A powerful falgopy package",
    "version": "3.0.0",
    "project_urls": null,
    "split_keywords": [
        "cs",
        "data",
        "data",
        "structures",
        "falgopy",
        "algo"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3cde5eea93c02e8c56a5bb039be1d148054bb699609ba54ef6b075232e06f0c6",
                "md5": "b5f48908ed652781e70f5cce9715e944",
                "sha256": "11da61d2b2c95efa1ec919e428940e8da7e7fe4eb3e52cbbf8f105d9c7e8a0a3"
            },
            "downloads": -1,
            "filename": "falgopy-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b5f48908ed652781e70f5cce9715e944",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 17898,
            "upload_time": "2024-06-29T13:32:46",
            "upload_time_iso_8601": "2024-06-29T13:32:46.305993Z",
            "url": "https://files.pythonhosted.org/packages/3c/de/5eea93c02e8c56a5bb039be1d148054bb699609ba54ef6b075232e06f0c6/falgopy-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9574f0dbe373be219b1f7bc8acd7795a22e5f16e6903af5f9285c3cdef7c4c7b",
                "md5": "5aae7a6ae8a484bab61d72a3ff499b1a",
                "sha256": "87c55d18c694dee6b497d757c8b8a1d489054bee84e165dfdfa5ce8b07a46643"
            },
            "downloads": -1,
            "filename": "falgopy-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5aae7a6ae8a484bab61d72a3ff499b1a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 8595,
            "upload_time": "2024-06-29T13:32:47",
            "upload_time_iso_8601": "2024-06-29T13:32:47.231441Z",
            "url": "https://files.pythonhosted.org/packages/95/74/f0dbe373be219b1f7bc8acd7795a22e5f16e6903af5f9285c3cdef7c4c7b/falgopy-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-29 13:32:47",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "falgopy"
}
        
Elapsed time: 1.23434s