Last active
July 12, 2020 04:23
-
-
Save Andrew-Chen-Wang/97c36ea589d9731bf8c67f6e561aabd4 to your computer and use it in GitHub Desktop.
Supported Stripe currencies list in Python (also available as Django choices list)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
List of the supported stripe currencies. | |
Also available as Django CHOICES list | |
if you'd like to store a product of whatever's | |
currency in integer form in the db. | |
""" | |
# https://stripe.com/docs/currencies | |
# http://jsfiddle.net/nick_craver/H6Mrt/ | |
SUPPORTED_STRIPE_CURRENCIES = ( | |
"USD", | |
"AED", | |
"AFN", | |
"ALL", | |
"AMD", | |
"ANG", | |
"AOA", | |
"ARS", | |
"AUD", | |
"AWG", | |
"AZN", | |
"BAM", | |
"BBD", | |
"BDT", | |
"BGN", | |
"BIF", | |
"BMD", | |
"BND", | |
"BOB", | |
"BRL", | |
"BSD", | |
"BWP", | |
"BZD", | |
"CAD", | |
"CDF", | |
"CHF", | |
"CLP", | |
"CNY", | |
"COP", | |
"CRC", | |
"CVE", | |
"CZK", | |
"DJF", | |
"DKK", | |
"DOP", | |
"DZD", | |
"EGP", | |
"ETB", | |
"EUR", | |
"FJD", | |
"FKP", | |
"GBP", | |
"GEL", | |
"GIP", | |
"GMD", | |
"GNF", | |
"GTQ", | |
"GYD", | |
"HKD", | |
"HNL", | |
"HRK", | |
"HTG", | |
"HUF", | |
"IDR", | |
"ILS", | |
"INR", | |
"ISK", | |
"JMD", | |
"JPY", | |
"KES", | |
"KGS", | |
"KHR", | |
"KMF", | |
"KRW", | |
"KYD", | |
"KZT", | |
"LAK", | |
"LBP", | |
"LKR", | |
"LRD", | |
"LSL", | |
"MAD", | |
"MDL", | |
"MGA", | |
"MKD", | |
"MMK", | |
"MNT", | |
"MOP", | |
"MRO", | |
"MUR", | |
"MVR", | |
"MWK", | |
"MXN", | |
"MYR", | |
"MZN", | |
"NAD", | |
"NGN", | |
"NIO", | |
"NOK", | |
"NPR", | |
"NZD", | |
"PAB", | |
"PEN", | |
"PGK", | |
"PHP", | |
"PKR", | |
"PLN", | |
"PYG", | |
"QAR", | |
"RON", | |
"RSD", | |
"RUB", | |
"RWF", | |
"SAR", | |
"SBD", | |
"SCR", | |
"SEK", | |
"SGD", | |
"SHP", | |
"SLL", | |
"SOS", | |
"SRD", | |
"STD", | |
"SZL", | |
"THB", | |
"TJS", | |
"TOP", | |
"TRY", | |
"TTD", | |
"TWD", | |
"TZS", | |
"UAH", | |
"UGX", | |
"UYU", | |
"UZS", | |
"VND", | |
"VUV", | |
"WST", | |
"XAF", | |
"XCD", | |
"XOF", | |
"XPF", | |
"YER", | |
"ZAR", | |
"ZMW", | |
) | |
_SUPPORTED_STRIPE_CURRENCIES_CHOICES = tuple((i, x) for i, x in enumerate(SUPPORTED_STRIPE_CURRENCIES)) | |
SUPPORTED_STRIPE_CURRENCIES_CHOICES = ( | |
(0, "USD"), | |
(1, "AED"), | |
(2, "AFN"), | |
(3, "ALL"), | |
(4, "AMD"), | |
(5, "ANG"), | |
(6, "AOA"), | |
(7, "ARS"), | |
(8, "AUD"), | |
(9, "AWG"), | |
(10, "AZN"), | |
(11, "BAM"), | |
(12, "BBD"), | |
(13, "BDT"), | |
(14, "BGN"), | |
(15, "BIF"), | |
(16, "BMD"), | |
(17, "BND"), | |
(18, "BOB"), | |
(19, "BRL"), | |
(20, "BSD"), | |
(21, "BWP"), | |
(22, "BZD"), | |
(23, "CAD"), | |
(24, "CDF"), | |
(25, "CHF"), | |
(26, "CLP"), | |
(27, "CNY"), | |
(28, "COP"), | |
(29, "CRC"), | |
(30, "CVE"), | |
(31, "CZK"), | |
(32, "DJF"), | |
(33, "DKK"), | |
(34, "DOP"), | |
(35, "DZD"), | |
(36, "EGP"), | |
(37, "ETB"), | |
(38, "EUR"), | |
(39, "FJD"), | |
(40, "FKP"), | |
(41, "GBP"), | |
(42, "GEL"), | |
(43, "GIP"), | |
(44, "GMD"), | |
(45, "GNF"), | |
(46, "GTQ"), | |
(47, "GYD"), | |
(48, "HKD"), | |
(49, "HNL"), | |
(50, "HRK"), | |
(51, "HTG"), | |
(52, "HUF"), | |
(53, "IDR"), | |
(54, "ILS"), | |
(55, "INR"), | |
(56, "ISK"), | |
(57, "JMD"), | |
(58, "JPY"), | |
(59, "KES"), | |
(60, "KGS"), | |
(61, "KHR"), | |
(62, "KMF"), | |
(63, "KRW"), | |
(64, "KYD"), | |
(65, "KZT"), | |
(66, "LAK"), | |
(67, "LBP"), | |
(68, "LKR"), | |
(69, "LRD"), | |
(70, "LSL"), | |
(71, "MAD"), | |
(72, "MDL"), | |
(73, "MGA"), | |
(74, "MKD"), | |
(75, "MMK"), | |
(76, "MNT"), | |
(77, "MOP"), | |
(78, "MRO"), | |
(79, "MUR"), | |
(80, "MVR"), | |
(81, "MWK"), | |
(82, "MXN"), | |
(83, "MYR"), | |
(84, "MZN"), | |
(85, "NAD"), | |
(86, "NGN"), | |
(87, "NIO"), | |
(88, "NOK"), | |
(89, "NPR"), | |
(90, "NZD"), | |
(91, "PAB"), | |
(92, "PEN"), | |
(93, "PGK"), | |
(94, "PHP"), | |
(95, "PKR"), | |
(96, "PLN"), | |
(97, "PYG"), | |
(98, "QAR"), | |
(99, "RON"), | |
(100, "RSD"), | |
(101, "RUB"), | |
(102, "RWF"), | |
(103, "SAR"), | |
(104, "SBD"), | |
(105, "SCR"), | |
(106, "SEK"), | |
(107, "SGD"), | |
(108, "SHP"), | |
(109, "SLL"), | |
(110, "SOS"), | |
(111, "SRD"), | |
(112, "STD"), | |
(113, "SZL"), | |
(114, "THB"), | |
(115, "TJS"), | |
(116, "TOP"), | |
(117, "TRY"), | |
(118, "TTD"), | |
(119, "TWD"), | |
(120, "TZS"), | |
(121, "UAH"), | |
(122, "UGX"), | |
(123, "UYU"), | |
(124, "UZS"), | |
(125, "VND"), | |
(126, "VUV"), | |
(127, "WST"), | |
(128, "XAF"), | |
(129, "XCD"), | |
(130, "XOF"), | |
(131, "XPF"), | |
(132, "YER"), | |
(133, "ZAR"), | |
(134, "ZMW"), | |
) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
The purpose of this was to see what was more efficient, indexing | |
a list of the currencies or just using the generator. It's pretty | |
obvious which wins (index). | |
""" | |
import timeit | |
setup = """ | |
# https://stripe.com/docs/currencies | |
# http://jsfiddle.net/nick_craver/H6Mrt/ | |
SUPPORTED_STRIPE_CURRENCIES = ( | |
"USD", | |
"AED", | |
"AFN", | |
"ALL", | |
"AMD", | |
"ANG", | |
"AOA", | |
"ARS", | |
"AUD", | |
"AWG", | |
"AZN", | |
"BAM", | |
"BBD", | |
"BDT", | |
"BGN", | |
"BIF", | |
"BMD", | |
"BND", | |
"BOB", | |
"BRL", | |
"BSD", | |
"BWP", | |
"BZD", | |
"CAD", | |
"CDF", | |
"CHF", | |
"CLP", | |
"CNY", | |
"COP", | |
"CRC", | |
"CVE", | |
"CZK", | |
"DJF", | |
"DKK", | |
"DOP", | |
"DZD", | |
"EGP", | |
"ETB", | |
"EUR", | |
"FJD", | |
"FKP", | |
"GBP", | |
"GEL", | |
"GIP", | |
"GMD", | |
"GNF", | |
"GTQ", | |
"GYD", | |
"HKD", | |
"HNL", | |
"HRK", | |
"HTG", | |
"HUF", | |
"IDR", | |
"ILS", | |
"INR", | |
"ISK", | |
"JMD", | |
"JPY", | |
"KES", | |
"KGS", | |
"KHR", | |
"KMF", | |
"KRW", | |
"KYD", | |
"KZT", | |
"LAK", | |
"LBP", | |
"LKR", | |
"LRD", | |
"LSL", | |
"MAD", | |
"MDL", | |
"MGA", | |
"MKD", | |
"MMK", | |
"MNT", | |
"MOP", | |
"MRO", | |
"MUR", | |
"MVR", | |
"MWK", | |
"MXN", | |
"MYR", | |
"MZN", | |
"NAD", | |
"NGN", | |
"NIO", | |
"NOK", | |
"NPR", | |
"NZD", | |
"PAB", | |
"PEN", | |
"PGK", | |
"PHP", | |
"PKR", | |
"PLN", | |
"PYG", | |
"QAR", | |
"RON", | |
"RSD", | |
"RUB", | |
"RWF", | |
"SAR", | |
"SBD", | |
"SCR", | |
"SEK", | |
"SGD", | |
"SHP", | |
"SLL", | |
"SOS", | |
"SRD", | |
"STD", | |
"SZL", | |
"THB", | |
"TJS", | |
"TOP", | |
"TRY", | |
"TTD", | |
"TWD", | |
"TZS", | |
"UAH", | |
"UGX", | |
"UYU", | |
"UZS", | |
"VND", | |
"VUV", | |
"WST", | |
"XAF", | |
"XCD", | |
"XOF", | |
"XPF", | |
"YER", | |
"ZAR", | |
"ZMW", | |
) | |
SUPPORTED_STRIPE_CURRENCIES_CHOICES = tuple((i, x) for i, x in enumerate(SUPPORTED_STRIPE_CURRENCIES)) | |
""" | |
if __name__ == "__main__": | |
value = "ZMW" | |
print(min(timeit.Timer( | |
f'next((i for i, v in enumerate(SUPPORTED_STRIPE_CURRENCIES_CHOICES) if v[1] == "{value}"))', | |
setup=setup, | |
).repeat(5, 100000))) | |
print(min(timeit.Timer( | |
f'SUPPORTED_STRIPE_CURRENCIES.index("{value}")' | |
, setup=setup | |
).repeat(5, 100000))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment