prompt: 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()
  
  ```
  
golden_diff: 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.
  
verification_info: {"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"}]}