We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Add pricetag support
# Feature request
## Thesis

Create a localized pricetag:

```
>>> mimesis.Business().pricetag()
"$ 12.34"
>>> mimesis.Business("de").pricetag(minimum=1000, maximum=1500)
"1.234,56 €"
>>> mimesis.Business("cs").pricetag()
"75,20 Kč"        # rounded to 0.1
```
with defaults minimum=0.01 and maximum=1000.00 as a proposal for the default provider. Localized providers would define their own values, because of huge differences between the used values, such as USD/EUR/GBP going down to 0.01, and some minor currencies using millions as base.

## Reasoning

This is very locale dependent. Currency is already in the `CURRENCY_SYMBOLS`, but what would be the best place for localized number and price formatting as well as the localized defaults for minimum/maximum?

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `mimesis/providers/business.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 """Business data provider."""
4 
5 from mimesis.data import (
6     CRYPTOCURRENCY_ISO_CODES,
7     CRYPTOCURRENCY_SYMBOLS,
8     CURRENCY_ISO_CODES,
9     CURRENCY_SYMBOLS,
10 )
11 from mimesis.providers.base import BaseDataProvider
12 
13 __all__ = ['Business']
14 
15 
16 class Business(BaseDataProvider):
17     """Class for generating data for business."""
18 
19     def __init__(self, *args, **kwargs):
20         """Initialize attributes.
21 
22         :param locale: Current locale.
23         """
24         super().__init__(*args, **kwargs)
25         self._datafile = 'business.json'
26         self.pull(self._datafile)
27 
28     class Meta:
29         """Class for metadata."""
30 
31         name = 'business'
32 
33     def company(self) -> str:
34         """Get a random company name.
35 
36         :return: Company name.
37         """
38         return self.random.choice(self._data['company']['name'])
39 
40     def company_type(self, abbr: bool = False) -> str:
41         """Get a random type of business entity.
42 
43         :param abbr: Abbreviated company type.
44         :return: Types of business entity.
45         """
46         key = 'abbr' if abbr else 'title'
47         return self.random.choice(
48             self._data['company']['type'][key],
49         )
50 
51     def copyright(self) -> str:  # noqa: A003
52         """Generate a random copyright.
53 
54         :return: Copyright of company.
55         """
56         return '© {}, {}'.format(
57             self.company(),
58             self.company_type(abbr=True),
59         )
60 
61     def currency_iso_code(self, allow_random: bool = False) -> str:
62         """Get code of the currency for current locale.
63 
64         :param allow_random: Get a random ISO code.
65         :return: Currency code.
66         """
67         if allow_random:
68             return self.random.choice(CURRENCY_ISO_CODES)
69         else:
70             return self._data['currency-code']
71 
72     def cryptocurrency_iso_code(self) -> str:
73         """Get symbol of random cryptocurrency.
74 
75         :return: Symbol of cryptocurrency.
76         """
77         return self.random.choice(CRYPTOCURRENCY_ISO_CODES)
78 
79     def currency_symbol(self):
80         """Get a currency symbol for current locale.
81 
82         :return: Currency symbol.
83         """
84         return CURRENCY_SYMBOLS[self.locale]
85 
86     def cryptocurrency_symbol(self) -> str:
87         """Get a cryptocurrency symbol.
88 
89         :return: Symbol of cryptocurrency.
90         """
91         return self.random.choice(CRYPTOCURRENCY_SYMBOLS)
92 
93     def price(self, minimum: float = 10.00,
94               maximum: float = 1000.00) -> str:
95         """Generate a random price.
96 
97         :param minimum: Max value of price.
98         :param maximum: Min value of price.
99         :return: Price.
100         """
101         price = self.random.uniform(minimum, maximum, precision=2)
102         return '{0} {1}'.format(price, self.currency_symbol())
103 
104     def price_in_btc(self, minimum: float = 0, maximum: float = 2) -> str:
105         """Generate random price in BTC.
106 
107         :param minimum: Minimum value of price.
108         :param maximum: Maximum value of price.
109         :return: Price in BTC.
110         """
111         return '{} BTC'.format(
112             self.random.uniform(
113                 minimum,
114                 maximum,
115                 precision=7,
116             ),
117         )
118
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/mimesis/providers/business.py b/mimesis/providers/business.py
--- a/mimesis/providers/business.py
+++ b/mimesis/providers/business.py
@@ -98,8 +98,19 @@
         :param maximum: Min value of price.
         :return: Price.
         """
-        price = self.random.uniform(minimum, maximum, precision=2)
-        return '{0} {1}'.format(price, self.currency_symbol())
+        price_format = self._data['price-format']
+        numeric_frac_digits = self._data['numeric-frac-digits']
+        delims = {
+            '.': self._data['numeric-decimal'],
+            ',': self._data['numeric-thousands'],
+        }
+
+        value = self.random.uniform(minimum, maximum)
+        price = '{:,.{}f}'.format(value, numeric_frac_digits)
+
+        price = ''.join(delims.get(char, char) for char in price)
+
+        return price_format.replace('#', price)
 
     def price_in_btc(self, minimum: float = 0, maximum: float = 2) -> str:
         """Generate random price in BTC.

{"golden_diff": "diff --git a/mimesis/providers/business.py b/mimesis/providers/business.py\n--- a/mimesis/providers/business.py\n+++ b/mimesis/providers/business.py\n@@ -98,8 +98,19 @@\n         :param maximum: Min value of price.\n         :return: Price.\n         \"\"\"\n-        price = self.random.uniform(minimum, maximum, precision=2)\n-        return '{0} {1}'.format(price, self.currency_symbol())\n+        price_format = self._data['price-format']\n+        numeric_frac_digits = self._data['numeric-frac-digits']\n+        delims = {\n+            '.': self._data['numeric-decimal'],\n+            ',': self._data['numeric-thousands'],\n+        }\n+\n+        value = self.random.uniform(minimum, maximum)\n+        price = '{:,.{}f}'.format(value, numeric_frac_digits)\n+\n+        price = ''.join(delims.get(char, char) for char in price)\n+\n+        return price_format.replace('#', price)\n \n     def price_in_btc(self, minimum: float = 0, maximum: float = 2) -> str:\n         \"\"\"Generate random price in BTC.\n", "issue": "Add pricetag support\n# Feature request\r\n## Thesis\r\n\r\nCreate a localized pricetag:\r\n\r\n```\r\n>>> mimesis.Business().pricetag()\r\n\"$ 12.34\"\r\n>>> mimesis.Business(\"de\").pricetag(minimum=1000, maximum=1500)\r\n\"1.234,56 \u20ac\"\r\n>>> mimesis.Business(\"cs\").pricetag()\r\n\"75,20 K\u010d\"        # rounded to 0.1\r\n```\r\nwith defaults minimum=0.01 and maximum=1000.00 as a proposal for the default provider. Localized providers would define their own values, because of huge differences between the used values, such as USD/EUR/GBP going down to 0.01, and some minor currencies using millions as base.\r\n\r\n## Reasoning\r\n\r\nThis is very locale dependent. Currency is already in the `CURRENCY_SYMBOLS`, but what would be the best place for localized number and price formatting as well as the localized defaults for minimum/maximum?\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\n\"\"\"Business data provider.\"\"\"\n\nfrom mimesis.data import (\n    CRYPTOCURRENCY_ISO_CODES,\n    CRYPTOCURRENCY_SYMBOLS,\n    CURRENCY_ISO_CODES,\n    CURRENCY_SYMBOLS,\n)\nfrom mimesis.providers.base import BaseDataProvider\n\n__all__ = ['Business']\n\n\nclass Business(BaseDataProvider):\n    \"\"\"Class for generating data for business.\"\"\"\n\n    def __init__(self, *args, **kwargs):\n        \"\"\"Initialize attributes.\n\n        :param locale: Current locale.\n        \"\"\"\n        super().__init__(*args, **kwargs)\n        self._datafile = 'business.json'\n        self.pull(self._datafile)\n\n    class Meta:\n        \"\"\"Class for metadata.\"\"\"\n\n        name = 'business'\n\n    def company(self) -> str:\n        \"\"\"Get a random company name.\n\n        :return: Company name.\n        \"\"\"\n        return self.random.choice(self._data['company']['name'])\n\n    def company_type(self, abbr: bool = False) -> str:\n        \"\"\"Get a random type of business entity.\n\n        :param abbr: Abbreviated company type.\n        :return: Types of business entity.\n        \"\"\"\n        key = 'abbr' if abbr else 'title'\n        return self.random.choice(\n            self._data['company']['type'][key],\n        )\n\n    def copyright(self) -> str:  # noqa: A003\n        \"\"\"Generate a random copyright.\n\n        :return: Copyright of company.\n        \"\"\"\n        return '\u00a9 {}, {}'.format(\n            self.company(),\n            self.company_type(abbr=True),\n        )\n\n    def currency_iso_code(self, allow_random: bool = False) -> str:\n        \"\"\"Get code of the currency for current locale.\n\n        :param allow_random: Get a random ISO code.\n        :return: Currency code.\n        \"\"\"\n        if allow_random:\n            return self.random.choice(CURRENCY_ISO_CODES)\n        else:\n            return self._data['currency-code']\n\n    def cryptocurrency_iso_code(self) -> str:\n        \"\"\"Get symbol of random cryptocurrency.\n\n        :return: Symbol of cryptocurrency.\n        \"\"\"\n        return self.random.choice(CRYPTOCURRENCY_ISO_CODES)\n\n    def currency_symbol(self):\n        \"\"\"Get a currency symbol for current locale.\n\n        :return: Currency symbol.\n        \"\"\"\n        return CURRENCY_SYMBOLS[self.locale]\n\n    def cryptocurrency_symbol(self) -> str:\n        \"\"\"Get a cryptocurrency symbol.\n\n        :return: Symbol of cryptocurrency.\n        \"\"\"\n        return self.random.choice(CRYPTOCURRENCY_SYMBOLS)\n\n    def price(self, minimum: float = 10.00,\n              maximum: float = 1000.00) -> str:\n        \"\"\"Generate a random price.\n\n        :param minimum: Max value of price.\n        :param maximum: Min value of price.\n        :return: Price.\n        \"\"\"\n        price = self.random.uniform(minimum, maximum, precision=2)\n        return '{0} {1}'.format(price, self.currency_symbol())\n\n    def price_in_btc(self, minimum: float = 0, maximum: float = 2) -> str:\n        \"\"\"Generate random price in BTC.\n\n        :param minimum: Minimum value of price.\n        :param maximum: Maximum value of price.\n        :return: Price in BTC.\n        \"\"\"\n        return '{} BTC'.format(\n            self.random.uniform(\n                minimum,\n                maximum,\n                precision=7,\n            ),\n        )\n", "path": "mimesis/providers/business.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\n\"\"\"Business data provider.\"\"\"\n\nfrom mimesis.data import (\n    CRYPTOCURRENCY_ISO_CODES,\n    CRYPTOCURRENCY_SYMBOLS,\n    CURRENCY_ISO_CODES,\n    CURRENCY_SYMBOLS,\n)\nfrom mimesis.providers.base import BaseDataProvider\n\n__all__ = ['Business']\n\n\nclass Business(BaseDataProvider):\n    \"\"\"Class for generating data for business.\"\"\"\n\n    def __init__(self, *args, **kwargs):\n        \"\"\"Initialize attributes.\n\n        :param locale: Current locale.\n        \"\"\"\n        super().__init__(*args, **kwargs)\n        self._datafile = 'business.json'\n        self.pull(self._datafile)\n\n    class Meta:\n        \"\"\"Class for metadata.\"\"\"\n\n        name = 'business'\n\n    def company(self) -> str:\n        \"\"\"Get a random company name.\n\n        :return: Company name.\n        \"\"\"\n        return self.random.choice(self._data['company']['name'])\n\n    def company_type(self, abbr: bool = False) -> str:\n        \"\"\"Get a random type of business entity.\n\n        :param abbr: Abbreviated company type.\n        :return: Types of business entity.\n        \"\"\"\n        key = 'abbr' if abbr else 'title'\n        return self.random.choice(\n            self._data['company']['type'][key],\n        )\n\n    def copyright(self) -> str:  # noqa: A003\n        \"\"\"Generate a random copyright.\n\n        :return: Copyright of company.\n        \"\"\"\n        return '\u00a9 {}, {}'.format(\n            self.company(),\n            self.company_type(abbr=True),\n        )\n\n    def currency_iso_code(self, allow_random: bool = False) -> str:\n        \"\"\"Get code of the currency for current locale.\n\n        :param allow_random: Get a random ISO code.\n        :return: Currency code.\n        \"\"\"\n        if allow_random:\n            return self.random.choice(CURRENCY_ISO_CODES)\n        else:\n            return self._data['currency-code']\n\n    def cryptocurrency_iso_code(self) -> str:\n        \"\"\"Get symbol of random cryptocurrency.\n\n        :return: Symbol of cryptocurrency.\n        \"\"\"\n        return self.random.choice(CRYPTOCURRENCY_ISO_CODES)\n\n    def currency_symbol(self):\n        \"\"\"Get a currency symbol for current locale.\n\n        :return: Currency symbol.\n        \"\"\"\n        return CURRENCY_SYMBOLS[self.locale]\n\n    def cryptocurrency_symbol(self) -> str:\n        \"\"\"Get a cryptocurrency symbol.\n\n        :return: Symbol of cryptocurrency.\n        \"\"\"\n        return self.random.choice(CRYPTOCURRENCY_SYMBOLS)\n\n    def price(self, minimum: float = 10.00,\n              maximum: float = 1000.00) -> str:\n        \"\"\"Generate a random price.\n\n        :param minimum: Max value of price.\n        :param maximum: Min value of price.\n        :return: Price.\n        \"\"\"\n        price_format = self._data['price-format']\n        numeric_frac_digits = self._data['numeric-frac-digits']\n        delims = {\n            '.': self._data['numeric-decimal'],\n            ',': self._data['numeric-thousands'],\n        }\n\n        value = self.random.uniform(minimum, maximum)\n        price = '{:,.{}f}'.format(value, numeric_frac_digits)\n\n        price = ''.join(delims.get(char, char) for char in price)\n\n        return price_format.replace('#', price)\n\n    def price_in_btc(self, minimum: float = 0, maximum: float = 2) -> str:\n        \"\"\"Generate random price in BTC.\n\n        :param minimum: Minimum value of price.\n        :param maximum: Maximum value of price.\n        :return: Price in BTC.\n        \"\"\"\n        return '{} BTC'.format(\n            self.random.uniform(\n                minimum,\n                maximum,\n                precision=7,\n            ),\n        )\n", "path": "mimesis/providers/business.py"}]}