homa 0.19__tar.gz → 0.21__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of homa might be problematic. Click here for more details.

homa-0.21/PKG-INFO ADDED
@@ -0,0 +1,16 @@
1
+ Metadata-Version: 2.1
2
+ Name: homa
3
+ Version: 0.21
4
+ Maintainer: Taha Shieenavaz
5
+ Maintainer-email: tahashieenavaz@gmail.com
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+
9
+ <p align="center">
10
+ <img
11
+ src="https://raw.githubusercontent.com/tahashieenavaz/homa/main/art/homa.svg"
12
+ width=400
13
+ />
14
+ </p>
15
+
16
+ <hr />
homa-0.21/README.md ADDED
@@ -0,0 +1,8 @@
1
+ <p align="center">
2
+ <img
3
+ src="https://raw.githubusercontent.com/tahashieenavaz/homa/main/art/homa.svg"
4
+ width=400
5
+ />
6
+ </p>
7
+
8
+ <hr />
@@ -0,0 +1 @@
1
+ from .main import *
@@ -0,0 +1,11 @@
1
+ from typing import List
2
+
3
+
4
+ class Collection:
5
+ def __init__(self, items: List[any]):
6
+ self.value = items
7
+
8
+ def map(self, callback: callable):
9
+ return list(
10
+ map(callback, self.value)
11
+ )
@@ -0,0 +1,4 @@
1
+ class Logger:
2
+ @staticmethod
3
+ def danger(message: str) -> None:
4
+ print(message)
@@ -0,0 +1,32 @@
1
+ from ..helpers import is_colab
2
+
3
+
4
+ class RepositoryWrapper:
5
+ def __init__(self):
6
+ self.sigmaX = 0
7
+ self.sigmaY = 0
8
+
9
+ self.directory = "./"
10
+ self.images = {}
11
+ self.cameras = {}
12
+ self.window_counter = 0
13
+
14
+ if is_colab():
15
+ from google.colab.patches import cv2_imshow as imshow
16
+ else:
17
+ from cv2 import imshow
18
+
19
+ def final_imshow(window, image):
20
+ if is_colab():
21
+ imshow(image)
22
+ else:
23
+ imshow(window, image)
24
+
25
+ self.imshow = final_imshow
26
+
27
+ def get_counter(self):
28
+ self.window_counter += 1
29
+ return self.window_counter
30
+
31
+
32
+ Repository = RepositoryWrapper()
File without changes
File without changes
@@ -0,0 +1,16 @@
1
+ import sys
2
+ from typing import List
3
+ from .classes.Collection import Collection
4
+ from .classes.Logger import Logger
5
+
6
+
7
+ def is_colab() -> bool:
8
+ return 'google.colab' in sys.modules
9
+
10
+
11
+ def collection(items: List[any]):
12
+ return Collection(items)
13
+
14
+
15
+ def danger(message: str) -> None:
16
+ Logger.danger(message)
homa-0.21/homa/main.py ADDED
@@ -0,0 +1,109 @@
1
+ import cv2
2
+ import numpy
3
+ from typing import List
4
+ from .helpers import collection
5
+ from .helpers import danger
6
+ from .helpers import is_colab
7
+
8
+ from .classes.Repository import Repository
9
+
10
+
11
+ def path(directory: str) -> None:
12
+ Repository.directory = directory
13
+
14
+
15
+ def write(key: str, filename: str) -> None:
16
+ cv2.imwrite(
17
+ filename=filename,
18
+ img=Repository.images[key]
19
+ )
20
+
21
+
22
+ def save(key: str, filename: str) -> None:
23
+ write(key, filename)
24
+
25
+
26
+ def image(filename: str, key: str | None = None, color: bool = True) -> None:
27
+ # TODO: add no extension in the file
28
+ if key is None:
29
+ key = filename
30
+
31
+ Repository.images[key] = cv2.imread(filename, int(color))
32
+ return Repository.images[key]
33
+
34
+
35
+ def show(key: any = None) -> None:
36
+ # TODO: add functionality to distinguish between camera and images
37
+
38
+ if key is not None and not isinstance(key, str):
39
+ Repository.imshow(f"Window #{Repository.get_counter()}", key)
40
+
41
+ elif key is None:
42
+ for key, image in Repository.images.items():
43
+ Repository.imshow(key, image)
44
+
45
+ elif key is not None:
46
+ if key in Repository.images:
47
+ Repository.imshow(key, Repository.images[key])
48
+ else:
49
+ danger(f"No image found with key {key}")
50
+
51
+ cv2.waitKey(0)
52
+
53
+
54
+ def camera():
55
+ capture = cv2.VideoCapture()
56
+ _, frame = capture.read()
57
+ Repository.camera_frame = frame
58
+
59
+
60
+ def stack(keys: List[str], new_key: str, axis: int):
61
+ Repository.images[new_key] = numpy.concatenate(
62
+ collection(keys).map(lambda key: Repository.images[key]),
63
+ axis=axis
64
+ )
65
+
66
+
67
+ def vstack(keys: List[str], new_key: str) -> None:
68
+ stack(keys, new_key, 1)
69
+
70
+
71
+ def hstack(keys: List[str] | str, new_key: str | None = None):
72
+ if isinstance(keys, str) and new_key is None:
73
+ hstack([keys], keys)
74
+ return
75
+
76
+ stack(keys, new_key, 0)
77
+
78
+
79
+ def blur(key: str, kernel: int | List[int] = (7, 7), new_key: str | None = None):
80
+ if new_key is None:
81
+ new_key = key
82
+
83
+ if isinstance(kernel, int):
84
+ kernel = (kernel, kernel)
85
+
86
+ Repository.images[new_key] = cv2.blur(
87
+ Repository.images[key],
88
+ kernel
89
+ )
90
+
91
+
92
+ def sigma(x: float = 0, y: float = 0):
93
+ Repository.sigmaX = x
94
+ Repository.sigmaY = y
95
+
96
+
97
+ def gaussian(key: str, kernel: None | List[int] = None, new_key: str | None = None):
98
+ if new_key is None:
99
+ new_key = key
100
+
101
+ if isinstance(kernel, int):
102
+ kernel = (kernel, kernel)
103
+
104
+ Repository.images[new_key] = cv2.GaussianBlur(
105
+ Repository.images[key],
106
+ kernel,
107
+ sigmaX=Repository.sigmaX,
108
+ sigmaY=Repository.sigmaY
109
+ )
@@ -0,0 +1,16 @@
1
+ Metadata-Version: 2.1
2
+ Name: homa
3
+ Version: 0.21
4
+ Maintainer: Taha Shieenavaz
5
+ Maintainer-email: tahashieenavaz@gmail.com
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+
9
+ <p align="center">
10
+ <img
11
+ src="https://raw.githubusercontent.com/tahashieenavaz/homa/main/art/homa.svg"
12
+ width=400
13
+ />
14
+ </p>
15
+
16
+ <hr />
@@ -0,0 +1,16 @@
1
+ LICENSE
2
+ README.md
3
+ setup.py
4
+ homa/__init__.py
5
+ homa/constants.py
6
+ homa/helpers.py
7
+ homa/main.py
8
+ homa.egg-info/PKG-INFO
9
+ homa.egg-info/SOURCES.txt
10
+ homa.egg-info/dependency_links.txt
11
+ homa.egg-info/requires.txt
12
+ homa.egg-info/top_level.txt
13
+ homa/classes/Collection.py
14
+ homa/classes/Logger.py
15
+ homa/classes/Repository.py
16
+ homa/classes/__init__.py
@@ -0,0 +1,2 @@
1
+ opencv-python
2
+ numpy
@@ -1,22 +1,27 @@
1
1
  from setuptools import setup
2
2
  from setuptools import find_packages
3
+ from sys import argv
3
4
 
4
5
  with open("README.md") as fh:
5
6
  description = fh.read()
6
7
 
8
+ with open("version.txt", "r") as fh:
9
+ current_version = float(fh.readline())
10
+
11
+ with open("version.txt", "w") as fh:
12
+ next_version = round(current_version + 0.01, 2)
13
+ fh.write(str(next_version))
14
+
7
15
  setup(
8
16
  name="homa",
9
17
  maintainer="Taha Shieenavaz",
10
18
  maintainer_email="tahashieenavaz@gmail.com",
11
- version="0.19",
19
+ version=next_version,
12
20
  packages=find_packages(),
13
21
  install_requires=[
14
- #
22
+ "opencv-python",
23
+ "numpy"
15
24
  ],
16
25
  long_description=description,
17
26
  long_description_content_type="text/markdown",
18
- include_package_data=True,
19
- package_data={
20
- "": ["wordlists/*"]
21
- }
22
27
  )
homa-0.19/PKG-INFO DELETED
@@ -1,43 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: homa
3
- Version: 0.19
4
- Maintainer: Taha Shieenavaz
5
- Maintainer-email: tahashieenavaz@gmail.com
6
- Description-Content-Type: text/markdown
7
- License-File: LICENSE
8
-
9
- <p align="center">
10
- <img
11
- src="https://raw.githubusercontent.com/tahashieenavaz/homa/main/art/homa.svg"
12
- width=400
13
- />
14
- </p>
15
-
16
- <hr />
17
-
18
- Homa is a library to generate random data that provides more productivity for developers.
19
-
20
- In loving memory of [Saber Rastikerdar](https://rastikerdar.github.io/), who introduced Persian (Farsi) to the digital world. 🖤💚
21
-
22
- ## Names
23
-
24
- ```python
25
- from homa import fake
26
-
27
- fake().fullname() # Julia Briwn
28
- fake().prefix() # Ms.
29
- fake().firstname() # Joe
30
- fake().surname() # Lewos
31
-
32
- fake().fullname("girl") # Ms. Heather Willaoms
33
- fake().fullname("boy") # Juan Murteniz
34
- ```
35
-
36
- ## Text
37
-
38
- ```python
39
- from homa import fake
40
-
41
- fake().title() # Haw jeornels oro fighteng buck agounst e wovu af qiistuinubli umagas
42
- fake().token() # aivel
43
- ```
homa-0.19/README.md DELETED
@@ -1,35 +0,0 @@
1
- <p align="center">
2
- <img
3
- src="https://raw.githubusercontent.com/tahashieenavaz/homa/main/art/homa.svg"
4
- width=400
5
- />
6
- </p>
7
-
8
- <hr />
9
-
10
- Homa is a library to generate random data that provides more productivity for developers.
11
-
12
- In loving memory of [Saber Rastikerdar](https://rastikerdar.github.io/), who introduced Persian (Farsi) to the digital world. 🖤💚
13
-
14
- ## Names
15
-
16
- ```python
17
- from homa import fake
18
-
19
- fake().fullname() # Julia Briwn
20
- fake().prefix() # Ms.
21
- fake().firstname() # Joe
22
- fake().surname() # Lewos
23
-
24
- fake().fullname("girl") # Ms. Heather Willaoms
25
- fake().fullname("boy") # Juan Murteniz
26
- ```
27
-
28
- ## Text
29
-
30
- ```python
31
- from homa import fake
32
-
33
- fake().title() # Haw jeornels oro fighteng buck agounst e wovu af qiistuinubli umagas
34
- fake().token() # aivel
35
- ```
@@ -1,3 +0,0 @@
1
- from .main import Homa
2
- from .main import homa
3
- from .main import fake
homa-0.19/homa/helpers.py DELETED
@@ -1,131 +0,0 @@
1
- import random
2
- import math
3
- import re
4
- import os
5
- import pkg_resources
6
-
7
-
8
- def resource(name: str):
9
- """
10
- The function `resource` takes a string `name` as input and returns the filename of a resource in the
11
- "homa" package.
12
-
13
- :param name: The `name` parameter in the `resource` function is a string that represents the name of
14
- the resource file you want to retrieve the filename for using `pkg_resources.resource_filename`
15
- function
16
- :type name: str
17
- :return: The `resource` function is returning the filename of the specified resource within the
18
- "homa" package using `pkg_resources.resource_filename`.
19
- """
20
- return pkg_resources.resource_filename("homa", name)
21
-
22
-
23
- def replaceVowels(raw: str) -> str:
24
- """
25
- The function `replaceVowels` takes a string input and replaces all vowels with random vowels.
26
-
27
- :param raw: The `replaceVowels` function takes a string `raw` as input and replaces all vowels (a,
28
- o, i, e, u) in the string with a random vowel using the `randomVowel` function
29
- :type raw: str
30
- :return: The `replaceVowels` function is returning a modified version of the input string `raw`
31
- where all vowels (a, o, i, e, u) have been replaced with random vowels.
32
- """
33
- return re.sub(
34
- "[aoieu]",
35
- lambda vowel: randomVowel(vowel),
36
- raw
37
- )
38
-
39
-
40
- def randint(low=0, high=100):
41
- """
42
- The function `randint` generates a random integer within a specified range.
43
-
44
- :param low: The `low` parameter in the `randint` function represents the lower bound of the range
45
- from which a random integer will be generated. By default, it is set to 0 if no value is provided
46
- when calling the function, defaults to 0 (optional)
47
- :param high: The `high` parameter in the `randint` function represents the upper bound of the range
48
- from which a random integer will be generated. By default, if no value is provided for `high`, it is
49
- set to 100. This means that if you call `randint()` without specifying a, defaults to 100 (optional)
50
- :return: The function `randint` is returning a random integer within the range specified by the
51
- `low` and `high` parameters. The integer is generated using the `random.random()` function to get a
52
- random float between 0 and 1, which is then scaled and shifted to fit within the specified range.
53
- """
54
- return low + math.floor(random.random() * (high - low))
55
-
56
-
57
- def repeat(times: int, callback: callable) -> None:
58
- """
59
- The `repeat` function takes an integer `times` and a callback function `callback`, and executes the
60
- callback function `times` number of times.
61
-
62
- :param times: The `times` parameter specifies the number of times the `callback` function should be
63
- executed in the `repeat` function
64
- :type times: int
65
- :param callback: The `callback` parameter in the `repeat` function is a callable object, which means
66
- it can be a function, method, or any other callable object that can be called using parentheses
67
- `()`. When you pass a callback function to the `repeat` function, it will be executed `times`
68
- :type callback: callable
69
- """
70
- for i in range(times):
71
- callback()
72
-
73
-
74
- def fileAsArray(location: str) -> list:
75
- """
76
- The function `fileAsArray` reads a file at a specified location and returns its contents as a list
77
- of strings with leading and trailing whitespaces removed.
78
-
79
- :param location: The `location` parameter in the `fileAsArray` function is a string that represents
80
- the file path of the file you want to read and convert into a list
81
- :type location: str
82
- :return: The function `fileAsArray` reads a file located at the specified `location`, strips any
83
- leading or trailing whitespace from each line, and returns the contents of the file as a list of
84
- strings.
85
- """
86
- with open(location) as handler:
87
- return list(map(lambda x: x.strip(), handler.readlines()))
88
-
89
-
90
- def oneOf(values: list) -> any:
91
- """
92
- The function `oneOf` takes a list of values and returns a random element from the list.
93
-
94
- :param values: The `values` parameter is a list of elements from which the `oneOf` function will
95
- randomly select and return one element
96
- :type values: list
97
- :return: The `oneOf` function is returning a random element from the `values` list.
98
- """
99
- return values[randint(0, len(values))]
100
-
101
-
102
- def isVowel(letter: str) -> bool:
103
- """
104
- This Python function checks if a given letter is a vowel.
105
-
106
- :param letter: The `isVowel` function takes a single parameter `letter` of type `str`, which
107
- represents a letter of the alphabet. The function checks if the first character of the input
108
- `letter` is a vowel (either 'a', 'o', 'i', 'e', or 'u
109
- :type letter: str
110
- :return: The function `isVowel` is returning a boolean value indicating whether the input `letter`
111
- is a vowel or not.
112
- """
113
- return letter[0] in "aoieu"
114
-
115
-
116
- def randomVowel(otherThan=None) -> str:
117
- """
118
- This Python function returns a random vowel, excluding a specified vowel if provided.
119
-
120
- :param otherThan: The `randomVowel` function generates a random vowel, with an optional parameter
121
- `otherThan` which specifies a vowel that should not be included in the random selection
122
- :return: a random vowel from the string "aoieu", excluding the vowel specified in the `otherThan`
123
- parameter if provided.
124
- """
125
- vowels = "aoieu"
126
- otherThan = str(otherThan)
127
-
128
- if bool(otherThan):
129
- vowels.replace(otherThan, "")
130
-
131
- return oneOf(list(vowels))
homa-0.19/homa/main.py DELETED
@@ -1,34 +0,0 @@
1
- import string
2
-
3
- from .repositories.RandomNameRepository import RandomNameRepository
4
- from .repositories.RandomTextRepository import RandomTextRepository
5
- from .repositories.RandomDateRepository import RandomDateRepository
6
- from .repositories.RandomImageRepository import RandomImageRepository
7
-
8
-
9
- class Homa:
10
- def __init__(self) -> None:
11
- self.repositories = {
12
- "name_repository": RandomNameRepository(),
13
- "date_repository": RandomDateRepository(),
14
- "text_repository": RandomTextRepository(),
15
- "image_repository": RandomImageRepository()
16
- }
17
-
18
- def __getattr__(self, name: string):
19
- if name in self.repositories.keys():
20
- return self.repositories[name]
21
-
22
- for repository in self.repositories.values():
23
- if hasattr(repository, name):
24
- return getattr(repository, name)
25
-
26
- raise Exception("No method found")
27
-
28
-
29
- def homa():
30
- return Homa()
31
-
32
-
33
- def fake():
34
- return homa()
@@ -1,62 +0,0 @@
1
- from ..helpers import randint
2
- import datetime
3
-
4
-
5
- class RandomDateRepository:
6
- def __init__(self):
7
- self.generatedYear = None
8
- self.generatedMonth = None
9
- self.generatedDay = None
10
- self.dayCounts = {
11
- 1: 31, # January
12
- 2: 28, # February
13
- 3: 31, # March
14
- 4: 30, # April
15
- 5: 31, # May
16
- 6: 30, # June
17
- 7: 31, # July
18
- 8: 31, # August
19
- 9: 30, # September
20
- 10: 31, # October
21
- 11: 30, # November
22
- 12: 31 # December
23
- }
24
-
25
- def year(self, start: int = 2000, end: int = 2020) -> int:
26
- self.generatedYear = randint(start, end + 1)
27
- self.isLeap = self.generatedYear % 4 == 0
28
-
29
- if self.isLeap:
30
- self.dayCounts[2] = 29
31
- else:
32
- self.dayCounts[2] = 28
33
-
34
- return self.generatedYear
35
-
36
- def month(self) -> int:
37
- self.generatedMonth = randint(1, 12 + 1)
38
- return self.generatedMonth
39
-
40
- def day(self) -> int:
41
- self.generatedDay = randint(1, self.dayCounts[self.generatedMonth])
42
- return self.generatedDay
43
-
44
- def date(self, asString=False, separator="/"):
45
- if asString:
46
- return f"{self.year()}{separator}{self.month()}{separator}{self.day()}"
47
-
48
- return datetime.datetime(
49
- self.year(),
50
- self.month(),
51
- self.day()
52
- )
53
-
54
- def datetime(self):
55
- return datetime.datetime(
56
- self.year(),
57
- self.month(),
58
- self.day(),
59
- randint(0, 23 + 1),
60
- randint(0, 60),
61
- randint(0, 60),
62
- )
@@ -1,2 +0,0 @@
1
- class RandomImageRepository:
2
- pass
@@ -1,64 +0,0 @@
1
- from random import shuffle
2
-
3
- from ..helpers import fileAsArray
4
- from ..helpers import oneOf
5
- from ..helpers import replaceVowels
6
- from ..helpers import resource
7
-
8
-
9
- class RandomNameRepository:
10
- def __init__(self) -> None:
11
- self.__masculine_firstnames = fileAsArray(
12
- resource("wordlists/masculine.txt"))
13
-
14
- self.__feminine_firstnames = fileAsArray(
15
- resource("wordlists/feminine.txt"))
16
-
17
- self.__surnames = fileAsArray(resource("wordlists/surnames.txt"))
18
-
19
- shuffle(self.__masculine_firstnames)
20
- shuffle(self.__feminine_firstnames)
21
- shuffle(self.__surnames)
22
-
23
- self.lastGender = None
24
-
25
- def gender(self, gender: str | None):
26
- genderMap = {
27
- "girl": "F",
28
- "girls": "F",
29
- "female": "F",
30
- "boy": "M",
31
- "male": "M"
32
- }
33
- self.lastGender = oneOf(
34
- ["F", "M"]) if not gender else genderMap[gender]
35
-
36
- def firstname(self) -> str:
37
- targetArrayMap = {
38
- "M": self.__masculine_firstnames,
39
- "F": self.__feminine_firstnames,
40
- }
41
-
42
- return oneOf(targetArrayMap[self.lastGenderOrRandom()])
43
-
44
- def surname(self) -> str:
45
- return replaceVowels(oneOf(self.__surnames))
46
-
47
- def prefix(self):
48
- targetArrayMap = {
49
- "M": ["Lord", "Sir", "Gentleman", "Dr."],
50
- "F": ["Madam", "Dr.", "Miss", "Ms."]
51
- }
52
- return oneOf(targetArrayMap[self.lastGenderOrRandom()])
53
-
54
- def lastGenderOrRandom(self):
55
- return self.lastGender if self.lastGender else oneOf(["M", "F"])
56
-
57
- def fullname(self, gender=None):
58
- self.gender(gender)
59
-
60
- usePrefix = oneOf([True, False])
61
- if usePrefix:
62
- return f"{self.prefix()} {self.firstname()} {self.surname()}"
63
-
64
- return f"{self.firstname()} {self.surname()}"
@@ -1,22 +0,0 @@
1
- import string
2
- import random
3
-
4
- from ..helpers import randint
5
- from ..helpers import oneOf
6
- from ..helpers import fileAsArray
7
- from ..helpers import resource
8
- from ..helpers import replaceVowels
9
-
10
-
11
- class RandomTextRepository:
12
- def __init__(self) -> None:
13
- self.titles = fileAsArray(resource("wordlists/titles.txt"))
14
- random.shuffle(self.titles)
15
-
16
- def token(self, lowerBound: int = 4, upperBound: int = 14):
17
- letters = list(string.ascii_lowercase)
18
- random.shuffle(letters)
19
- return "".join(letters[:randint(lowerBound, upperBound)])
20
-
21
- def title(self):
22
- return replaceVowels(oneOf(self.titles))
@@ -1,4 +0,0 @@
1
- from .RandomDateRepository import RandomDateRepository
2
- from .RandomTextRepository import RandomTextRepository
3
- from .RandomImageRepository import RandomImageRepository
4
- from .RandomNameRepository import RandomNameRepository
@@ -1,100 +0,0 @@
1
- Mary
2
- Patricia
3
- Jennifer
4
- Linda
5
- Elizabeth
6
- Barbara
7
- Susan
8
- Jessica
9
- Sarah
10
- Karen
11
- Lisa
12
- Nancy
13
- Betty
14
- Sandra
15
- Margaret
16
- Ashley
17
- Kimberly
18
- Emily
19
- Donna
20
- Michelle
21
- Carol
22
- Amanda
23
- Melissa
24
- Deborah
25
- Stephanie
26
- Dorothy
27
- Rebecca
28
- Sharon
29
- Laura
30
- Cynthia
31
- Amy
32
- Kathleen
33
- Angela
34
- Shirley
35
- Brenda
36
- Emma
37
- Anna
38
- Pamela
39
- Nicole
40
- Samantha
41
- Katherine
42
- Christine
43
- Helen
44
- Debra
45
- Rachel
46
- Carolyn
47
- Janet
48
- Maria
49
- Catherine
50
- Heather
51
- Diane
52
- Olivia
53
- Julie
54
- Joyce
55
- Victoria
56
- Ruth
57
- Virginia
58
- Lauren
59
- Kelly
60
- Christina
61
- Joan
62
- Evelyn
63
- Judith
64
- Andrea
65
- Hannah
66
- Megan
67
- Cheryl
68
- Jacqueline
69
- Martha
70
- Madison
71
- Teresa
72
- Gloria
73
- Sara
74
- Janice
75
- Ann
76
- Kathryn
77
- Abigail
78
- Sophia
79
- Frances
80
- Jean
81
- Alice
82
- Judy
83
- Isabella
84
- Julia
85
- Grace
86
- Amber
87
- Denise
88
- Danielle
89
- Marilyn
90
- Beverly
91
- Charlotte
92
- Natalie
93
- Theresa
94
- Diana
95
- Brittany
96
- Doris
97
- Kayla
98
- Alexis
99
- Lori
100
- Marie
@@ -1,100 +0,0 @@
1
- James
2
- Robert
3
- John
4
- Michael
5
- David
6
- William
7
- Richard
8
- Joseph
9
- Thomas
10
- Christopher
11
- Charles
12
- Daniel
13
- Matthew
14
- Anthony
15
- Mark
16
- Donald
17
- Steven
18
- Andrew
19
- Paul
20
- Joshua
21
- Kenneth
22
- Kevin
23
- Brian
24
- George
25
- Timothy
26
- Ronald
27
- Jason
28
- Edward
29
- Jeffrey
30
- Ryan
31
- Jacob
32
- Gary
33
- Nicholas
34
- Eric
35
- Jonathan
36
- Stephen
37
- Larry
38
- Justin
39
- Scott
40
- Brandon
41
- Benjamin
42
- Samuel
43
- Gregory
44
- Alexander
45
- Patrick
46
- Frank
47
- Raymond
48
- Jack
49
- Dennis
50
- Jerry
51
- Tyler
52
- Aaron
53
- Jose
54
- Adam
55
- Nathan
56
- Henry
57
- Zachary
58
- Douglas
59
- Peter
60
- Kyle
61
- Noah
62
- Ethan
63
- Jeremy
64
- Walter
65
- Christian
66
- Keith
67
- Roger
68
- Terry
69
- Austin
70
- Sean
71
- Gerald
72
- Carl
73
- Harold
74
- Dylan
75
- Arthur
76
- Lawrence
77
- Jordan
78
- Jesse
79
- Bryan
80
- Billy
81
- Bruce
82
- Gabriel
83
- Joe
84
- Logan
85
- Alan
86
- Juan
87
- Albert
88
- Willie
89
- Elijah
90
- Wayne
91
- Randy
92
- Vincent
93
- Mason
94
- Roy
95
- Ralph
96
- Bobby
97
- Russell
98
- Bradley
99
- Philip
100
- Eugene
@@ -1,100 +0,0 @@
1
- Smith
2
- Johnson
3
- Williams
4
- Brown
5
- Jones
6
- Miller
7
- Davis
8
- Garcia
9
- Rodriguez
10
- Wilson
11
- Martinez
12
- Anderson
13
- Taylor
14
- Thomas
15
- Hernandez
16
- Moore
17
- Martin
18
- Jackson
19
- Thompson
20
- White
21
- Lopez
22
- Lee
23
- Gonzalez
24
- Harris
25
- Clark
26
- Lewis
27
- Robinson
28
- Walker
29
- Perez
30
- Hall
31
- Young
32
- Allen
33
- Sanchez
34
- Wright
35
- King
36
- Scott
37
- Green
38
- Baker
39
- Adams
40
- Nelson
41
- Hill
42
- Ramirez
43
- Campbell
44
- Mitchell
45
- Roberts
46
- Carter
47
- Phillips
48
- Evans
49
- Turner
50
- Torres
51
- Parker
52
- Collins
53
- Edwards
54
- Stewart
55
- Flores
56
- Morris
57
- Nguyen
58
- Murphy
59
- Rivera
60
- Cook
61
- Rogers
62
- Morgan
63
- Peterson
64
- Cooper
65
- Reed
66
- Bailey
67
- Bell
68
- Gomez
69
- Kelly
70
- Howard
71
- Ward
72
- Cox
73
- Diaz
74
- Richardson
75
- Wood
76
- Watson
77
- Brooks
78
- Bennett
79
- Gray
80
- James
81
- Reyes
82
- Cruz
83
- Hughes
84
- Price
85
- Myers
86
- Long
87
- Foster
88
- Sanders
89
- Ross
90
- Morales
91
- Powell
92
- Sullivan
93
- Russell
94
- Ortiz
95
- Jenkins
96
- Gutierrez
97
- Perry
98
- Butler
99
- Barnes
100
- Fisher
@@ -1,225 +0,0 @@
1
- ‘A landmark moment’: scientists use AI to design antibodies from scratch
2
- How to stop ‘passing the harasser’: universities urged to join information-sharing scheme
3
- Bird-flu threat disrupts Antarctic penguin studies
4
- China’s giant underground neutrino lab prepares to probe cosmic mysteries
5
- First US drug approved for a liver disease surging around the world
6
- Ditching ‘Anthropocene’: why ecologists say the term still matters
7
- More than 4000 plastic chemicals are hazardous report finds
8
- Killer whales have menopause. Now scientists think they know why
9
- Why are so many young people getting cancer? What the data say
10
- Chatbot AI makes racist judgements on the basis of dialect
11
- Did ‘alien’ debris hit Earth? Startling claim sparks row at scientific meeting
12
- Ancient malaria genome from Roman skeleton hints at disease’s history
13
- Deadly brain cancer shrinks after CAR-T therapy — but for how long is unclear
14
- Massive public-health experiment sends vaccination rates soaring
15
- How OpenAI’s text-to-video tool Sora could change science – and society
16
- China–US climate collaboration concerns as Xie and Kerry step down
17
- Biden seeks to boost science funding — but his budget faces an ominous future
18
- First cell therapy for solid tumours heads to the clinic: what it means for cancer treatment
19
- The science of Oppenheimer: meet the Oscar-winning movie’s specialist advisers
20
- Blockbuster obesity drug leads to better health in people with HIV
21
- Indigenous Australian fire-stick farming began at least 11000 years ago
22
- Superconductivity scandal: the inside story of deception in a rising star’s physics lab
23
- China promises more money for science in 2024
24
- Could AI-designed proteins be weaponized? Scientists lay out safety guidelines
25
- AI-generated images and video are here: how could they shape research?
26
- Meet the real-life versions of Dune’s epic sandworms
27
- Got milk? Meet the weird amphibian that nurses its young
28
- ‘Despair’: Argentinian researchers protest as president begins dismantling science
29
- China has a list of suspect journals and it’s just been updated
30
- These tiny fish combine electric pulses to probe the environment
31
- Will these reprogrammed elephant cells ever make a mammoth?
32
- Geologists reject the Anthropocene as Earth’s new epoch — after 15 years of debate
33
- Trump versus Biden: what the rematch could mean for three key science issues
34
- Landmark study links microplastics to serious health problems
35
- Oldest stone tools in Europe hint at ancient humans’ route there
36
- How five crucial elections in 2024 could shape climate action for decades
37
- Meningitis could be behind ‘mystery illness’ reports in Nigeria
38
- What science says about hybrid working — and how to make it a success
39
- Genetics solves mystery of rare brown pandas after 40 years
40
- Organoids grown from amniotic fluid could shed light on rare diseases
41
- Millions of research papers at risk of disappearing from the Internet
42
- Oldest known animal sex chromosome evolved in octopuses 380 million years ago
43
- How heavy is a neutrino? Race to weigh mysterious particle heats up
44
- Brazil’s record dengue surge: why a vaccine campaign is unlikely to stop it
45
- This methane-sniffing satellite will leave climate polluters nowhere to hide
46
- Giant plume of plasma on the Sun’s surface and more — February’s best science images
47
- Two giant US telescopes threatened by funding cap
48
- Is ChatGPT making scientists hyper-productive? The highs and lows of using AI
49
- Could this one-time ‘epigenetic’ treatment control cholesterol?
50
- Can non-profits beat antibiotic resistance and soaring drug costs?
51
- ‘Epigenetic’ editing cuts cholesterol in mice
52
- How humans lost their tails — and why the discovery took 2.5 years to publish
53
- How dwarf galaxies lit up the Universe after the Big Bang
54
- Private Moon lander is dying — it scored some wins for science
55
- Japanese Moon-lander unexpectedly survives the lunar night
56
- Influential abortion-pill studies retracted: the science behind the decision
57
- Audio long read: Chimpanzees are dying from our colds — these scientists are trying to save them
58
- ‘Breakthrough’ allergy drug: injection protects against severe food reactions
59
- How to find meaning in your science career: six expert tips
60
- Giant ‘bubble’ in space could be source of powerful cosmic rays
61
- ‘Incomprehensible’: scientists in France decry €900-million cut to research
62
- The surprising link between gut bacteria and devastating eye diseases
63
- Earthquakes are most deadly in these unexpected countries
64
- Neuralink brain chip: advance sparks safety and secrecy concerns
65
- First private Moon lander touches down on lunar surface to make history
66
- ‘All of Us’ genetics chart stirs unease over controversial depiction of race
67
- How whales sing without drowning an anatomical mystery solved
68
- CAR-T therapy for multiple sclerosis enters US trials for first time
69
- Supernova mystery solved: JWST reveals the fate of an iconic stellar explosion
70
- Why are we nice? Altruism’s origins are put to the test
71
- Scientists under arrest: the researchers taking action over climate change
72
- Buried microplastics complicate efforts to define the Anthropocene
73
- Drug-resistant microbes: ‘brain drain’ is derailing the fight to stop them
74
- The life and gruesome death of a bog man revealed after 5000 years
75
- Why citizen scientists are gathering DNA from hundreds of lakes — on the same day
76
- MEGA-CRISPR tool gives a power boost to cancer-fighting cells
77
- Mind-reading devices are revealing the brain’s secrets
78
- 200 years of naming dinosaurs: scientists call for overhaul of antiquated system
79
- The decimal point is 150 years older than historians thought
80
- Ambitious survey of human diversity yields millions of undiscovered genetic variants
81
- What the EU’s tough AI law means for research and ChatGPT
82
- Just 5 women have won a top maths prize in the past 90 years
83
- Move over CRISPR: RNA-editing therapies pick up steam
84
- Smoking changes your immune system even years after quitting
85
- The future of precision cancer therapy might be to try everything
86
- This new map of the Universe suggests dark matter shaped the cosmos
87
- Introducing meat–rice: grain with added muscles beefs up protein
88
- Smoking scars the immune system for years after quitting
89
- Why is Latin America on fire? It’s not just climate change scientists say
90
- Largest post-pandemic survey finds trust in scientists is high
91
- Culture wars are raging on US campuses. Will they affect research?
92
- Indonesian election promises boost to research funding — no matter who wins
93
- Private Moon launch a success! But will the craft land safely on the lunar surface?
94
- How journals are fighting back against a wave of questionable images
95
- China conducts first nationwide review of retractions and research misconduct
96
- Early dementia diagnosis: blood proteins reveal at-risk people
97
- Apple Vision Pro: what does it mean for scientists?
98
- Why we need to rethink how we talk about cancer
99
- ‘Geometry can be very simple but totally deep’: meet top maths prizewinner Claire Voisin
100
- Glow way! Bioluminescent houseplant hits US market for first time
101
- Climatologist Michael Mann wins defamation case: what it means for scientists
102
- How to test a Moon landing from Earth
103
- Mirror-image molecules separated using workhorse of chemistry
104
- US and China likely to delay renewal of key science pact again
105
- Why a cheap effective treatment for diarrhoea is underused
106
- The new car batteries that could power the electric vehicle revolution
107
- Cancer’s power harnessed — lymphoma mutations supercharge T cells
108
- Turbocharged CAR-T cells melt tumours in mice — using a trick from cancer cells
109
- The Solar System has a new ocean — it’s buried in a small Saturn moon
110
- Fake research papers flagged by analysing authorship trends
111
- Santorini’s volcanic past: underwater clues reveal giant prehistoric eruption
112
- EU unveils controversial climate target: what scientists think
113
- CERN’s supercollider plan: $17-billion ‘Higgs factory’ would dwarf LHC
114
- AI chatbot shows surprising talent for predicting chemical properties and reactions
115
- The world has warmed 1.5 °C according to 300-year-old sponges
116
- JWST is most in-demand telescope ever — leaving many astronomers in the cold
117
- First passages of rolled-up Herculaneum scroll revealed
118
- Cervical cancer could be eliminated: here’s how
119
- Elon Musk’s Neuralink brain chip: what scientists think of first human trial
120
- Israel is flooding Gaza’s tunnel network: scientists assess the risks
121
- Crackdown on skin-colour bias by fingertip oxygen sensors is coming hints FDA
122
- Building used by Marie Curie will be dismantled to erect cancer centre
123
- Number of Black UK professors rises by 25% in one year
124
- This AI learnt language by seeing the world through a baby’s eyes
125
- Why autoimmune disease is more common in women: X chromosome holds clues
126
- Measles outbreaks cause alarm: what the data say
127
- Ancient DNA solves the mystery of who made a set of stone tools
128
- How cancer hijacks the nervous system to grow and spread
129
- How do otters protect salt marshes from erosion? Shellfishly
130
- Deepfakes trolls and cybertroopers: how social media could sway elections in 2024
131
- Mysterious exploding star and more — January’s best science images
132
- New genetic variants found in large Chinese mother–baby study
133
- Brazil’s deforestation ‘police’ on strike — threatening climate goals
134
- Indian forest act faces challenge in Supreme Court
135
- How to make academic hiring fair: database lists innovative policies
136
- A giant fund for climate disasters will soon open. Who should be paid first?
137
- Trump’s presidential push renews fears for US science
138
- Near death experience — Japan’s Moon lander makes a comeback
139
- Signs of ‘transmissible’ Alzheimer’s seen in people who received growth hormone
140
- ‘Wildly weird’ RNA bits discovered infesting the microbes in our guts
141
- Audio long read: Long COVID is a double curse in low-income nations — here’s why
142
- ‘Sci-fi instrument’ will hunt for giant gravitational waves in space
143
- Obesity drugs have another superpower: taming inflammation
144
- First aircraft to fly on Mars dies — but leaves a legacy of science
145
- This fast-living marsupial chooses sex over sleep — and dies young
146
- Black-hole observations solve cosmic-ray mystery
147
- CRISPR-edited crops break new ground in Africa
148
- Canada’s oil sands spew massive amounts of unmonitored polluting gases
149
- Dana-Farber retractions: meet the blogger who spotted problems in dozens of cancer papers
150
- Toxic red mud could be turned into ‘green’ steel
151
- Unethical studies on Chinese minority groups are being retracted — but not fast enough critics say
152
- Leading US particle-physics lab faces uncertain future
153
- Syphilis microbe’s family has plagued humans for millennia
154
- Can autoimmune diseases be cured? Scientists see hope at last
155
- How does chronic stress harm the gut? New clues emerge
156
- All arabica coffee is genetically similar: how can beans taste so different?
157
- Two-faced AI language models learn to hide deception
158
- China’s new dark-matter lab is biggest and deepest yet
159
- Japan’s successful Moon landing was the most precise ever
160
- Pioneering nuclear-fusion reactor shuts down: what scientists will learn
161
- Science’s fake-paper problem: high-profile effort will tackle paper mills
162
- This robot grows like a vine — and could help navigate disaster zones
163
- Medical AI could be ‘dangerous’ for poorer nations WHO warns
164
- AlphaFold found thousands of possible psychedelics. Will its predictions help drug discovery?
165
- Fingertip oxygen sensors can fail on dark skin — now a physician is suing
166
- Long-COVID signatures identified in huge analysis of blood proteins
167
- The consciousness wars: can scientists ever agree on how the mind works?
168
- This AI just figured out geometry — is this a step towards artificial reasoning?
169
- Could giant underwater curtains slow ice-sheet melting?
170
- Potent new pill provides COVID relief for the masses
171
- Piracy at sea is waning — but hotspots remain
172
- DeepMind AI solves geometry problems at star-student level
173
- Did the Black Death shape the human genome? Study challenges bold claim
174
- Scientists fear tough UK immigration rules will deter talent
175
- Chimpanzees are dying from our colds — these scientists are trying to save them
176
- Largest genetic database of marine microbes could aid drug discovery
177
- Cloned rhesus monkey lives to adulthood for first time
178
- New NIH chief opens up about risky pathogens postdoc salaries and the year ahead
179
- In pictures: lava flows into Icelandic town during volcanic eruption
180
- Can foreign coral save a dying reef? Radical idea sparks debate
181
- Ancient DNA reveals first known case of sex-development disorder
182
- Earth boiled in 2023 — will it happen again in 2024?
183
- Google AI has better bedside manner than human doctors — and makes better diagnoses
184
- ‘Set it and forget it’: automated lab uses AI and robotics to improve proteins
185
- Oceans break heat records five years in a row
186
- This is the oldest fossilized reptile skin ever found — it pre-dates the dinosaurs
187
- What counts as plagiarism? Harvard president’s resignation sparks debate
188
- Medical AI falters when assessing patients it hasn’t seen
189
- The science stories you missed over the holiday period
190
- Why did the world’s biggest ape go extinct?
191
- First approval for controversial sea-bed mining worries scientists
192
- Ancient DNA reveals origins of multiple sclerosis in Europe
193
- How CRISPR could yield the next blockbuster crop
194
- Mission failure feared for private US Moon lander — what’s next?
195
- Antibiotic resistance is a growing threat — is climate change making it worse?
196
- Tasmanian devil die-off is shifting another predator’s genetics
197
- Private US Moon mission launches — will it open a new era for science?
198
- Potent psychedelic drug banishes PTSD small study finds
199
- Japan earthquakes: the science behind the deadly tremors
200
- Science in 2024: what to expect this year
201
- Long COVID is a double curse in low-income nations — here’s why
202
- Harvard president’s resignation amid plagiarism allegations leaves academics reeling
203
- The AI–quantum computing mash-up: will it revolutionize science?
204
- Audio long read: A new kind of solar cell is coming — is it the future of green energy?
205
- The Nature Podcast highlights of 2023
206
- How AI works is often a mystery — that's a problem
207
- Reindeer can activate sleep mode while eating
208
- Will superintelligent AI sneak up on us? New study offers reassurance
209
- Citations show gender bias — and the reasons are surprising
210
- What were some of the biggest stories of 2023? Join us for the Nature Podcast quiz!
211
- Polar bear fur-inspired sweater is thinner than a down jacket — and just as warm
212
- AI consciousness: scientists say we urgently need answers
213
- The Nature Podcast festive spectacular 2023
214
- Vaccines reduce the risk of long COVID in children
215
- Cancer-fighting CAR T cells could be made inside body with viral injection
216
- This GPT-powered robot chemist designs reactions and makes drugs — on its own
217
- Surge in extreme forest fires fuels global emissions
218
- Scientists question cancer tests that use microscopic nematode worms
219
- Humans might have driven 1500 bird species to extinction — twice previous estimates
220
- Has your research influenced policy? Use this free tool to check
221
- These scientists aren’t using ChatGPT — here’s why
222
- Inhaled COVID vaccines stop infection in its tracks in monkey trials
223
- The science events to watch for in 2024
224
- Navigating planets plays and prejudice — a conversation with Aomawa Shields
225
- US nuclear-fusion lab enters new era: achieving ‘ignition’ over and over
@@ -1,43 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: homa
3
- Version: 0.19
4
- Maintainer: Taha Shieenavaz
5
- Maintainer-email: tahashieenavaz@gmail.com
6
- Description-Content-Type: text/markdown
7
- License-File: LICENSE
8
-
9
- <p align="center">
10
- <img
11
- src="https://raw.githubusercontent.com/tahashieenavaz/homa/main/art/homa.svg"
12
- width=400
13
- />
14
- </p>
15
-
16
- <hr />
17
-
18
- Homa is a library to generate random data that provides more productivity for developers.
19
-
20
- In loving memory of [Saber Rastikerdar](https://rastikerdar.github.io/), who introduced Persian (Farsi) to the digital world. 🖤💚
21
-
22
- ## Names
23
-
24
- ```python
25
- from homa import fake
26
-
27
- fake().fullname() # Julia Briwn
28
- fake().prefix() # Ms.
29
- fake().firstname() # Joe
30
- fake().surname() # Lewos
31
-
32
- fake().fullname("girl") # Ms. Heather Willaoms
33
- fake().fullname("boy") # Juan Murteniz
34
- ```
35
-
36
- ## Text
37
-
38
- ```python
39
- from homa import fake
40
-
41
- fake().title() # Haw jeornels oro fighteng buck agounst e wovu af qiistuinubli umagas
42
- fake().token() # aivel
43
- ```
@@ -1,19 +0,0 @@
1
- LICENSE
2
- README.md
3
- setup.py
4
- homa/__init__.py
5
- homa/helpers.py
6
- homa/main.py
7
- homa.egg-info/PKG-INFO
8
- homa.egg-info/SOURCES.txt
9
- homa.egg-info/dependency_links.txt
10
- homa.egg-info/top_level.txt
11
- homa/repositories/RandomDateRepository.py
12
- homa/repositories/RandomImageRepository.py
13
- homa/repositories/RandomNameRepository.py
14
- homa/repositories/RandomTextRepository.py
15
- homa/repositories/__init__.py
16
- homa/wordlists/feminine.txt
17
- homa/wordlists/masculine.txt
18
- homa/wordlists/surnames.txt
19
- homa/wordlists/titles.txt
File without changes
File without changes
File without changes