update bots

This commit is contained in:
2026-05-18 14:15:59 +07:00
parent b0ce866a2f
commit b9054d178e
5775 changed files with 832577 additions and 38 deletions

View File

@@ -0,0 +1,531 @@
from typing import Tuple
from .. import BaseProvider, ElementsType
localized = True
class Provider(BaseProvider):
formats: ElementsType[str] = (
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}}",
"{{last_name}}, {{last_name}} and {{last_name}}",
)
company_suffixes: ElementsType[str] = ("Inc", "and Sons", "LLC", "Group", "PLC", "Ltd")
catch_phrase_words: Tuple[ElementsType[str], ...] = (
(
"Adaptive",
"Advanced",
"Ameliorated",
"Assimilated",
"Automated",
"Balanced",
"Business-focused",
"Centralized",
"Cloned",
"Compatible",
"Configurable",
"Cross-group",
"Cross-platform",
"Customer-focused",
"Customizable",
"Decentralized",
"De-engineered",
"Devolved",
"Digitized",
"Distributed",
"Diverse",
"Down-sized",
"Enhanced",
"Enterprise-wide",
"Ergonomic",
"Exclusive",
"Expanded",
"Extended",
"Face-to-face",
"Focused",
"Front-line",
"Fully-configurable",
"Function-based",
"Fundamental",
"Future-proofed",
"Grass-roots",
"Horizontal",
"Implemented",
"Innovative",
"Integrated",
"Intuitive",
"Inverse",
"Managed",
"Mandatory",
"Monitored",
"Multi-channeled",
"Multi-lateral",
"Multi-layered",
"Multi-tiered",
"Networked",
"Object-based",
"Open-architected",
"Open-source",
"Operative",
"Optimized",
"Optional",
"Organic",
"Organized",
"Persevering",
"Persistent",
"Phased",
"Polarized",
"Pre-emptive",
"Proactive",
"Profit-focused",
"Profound",
"Programmable",
"Progressive",
"Public-key",
"Quality-focused",
"Reactive",
"Realigned",
"Re-contextualized",
"Re-engineered",
"Reduced",
"Reverse-engineered",
"Right-sized",
"Robust",
"Seamless",
"Secured",
"Self-enabling",
"Sharable",
"Stand-alone",
"Streamlined",
"Switchable",
"Synchronized",
"Synergistic",
"Synergized",
"Team-oriented",
"Total",
"Triple-buffered",
"Universal",
"Up-sized",
"Upgradable",
"User-centric",
"User-friendly",
"Versatile",
"Virtual",
"Visionary",
"Vision-oriented",
),
(
"24hour",
"24/7",
"3rdgeneration",
"4thgeneration",
"5thgeneration",
"6thgeneration",
"actuating",
"analyzing",
"asymmetric",
"asynchronous",
"attitude-oriented",
"background",
"bandwidth-monitored",
"bi-directional",
"bifurcated",
"bottom-line",
"clear-thinking",
"client-driven",
"client-server",
"coherent",
"cohesive",
"composite",
"context-sensitive",
"contextually-based",
"content-based",
"dedicated",
"demand-driven",
"didactic",
"directional",
"discrete",
"disintermediate",
"dynamic",
"eco-centric",
"empowering",
"encompassing",
"even-keeled",
"executive",
"explicit",
"exuding",
"fault-tolerant",
"foreground",
"fresh-thinking",
"full-range",
"global",
"grid-enabled",
"heuristic",
"high-level",
"holistic",
"homogeneous",
"human-resource",
"hybrid",
"impactful",
"incremental",
"intangible",
"interactive",
"intermediate",
"leadingedge",
"local",
"logistical",
"maximized",
"methodical",
"mission-critical",
"mobile",
"modular",
"motivating",
"multimedia",
"multi-state",
"multi-tasking",
"national",
"needs-based",
"neutral",
"next generation",
"non-volatile",
"object-oriented",
"optimal",
"optimizing",
"radical",
"real-time",
"reciprocal",
"regional",
"responsive",
"scalable",
"secondary",
"solution-oriented",
"stable",
"static",
"systematic",
"systemic",
"system-worthy",
"tangible",
"tertiary",
"transitional",
"uniform",
"upward-trending",
"user-facing",
"value-added",
"web-enabled",
"well-modulated",
"zero administration",
"zero-defect",
"zero tolerance",
),
(
"ability",
"access",
"adapter",
"algorithm",
"alliance",
"analyzer",
"application",
"approach",
"architecture",
"archive",
"artificial intelligence",
"array",
"attitude",
"benchmark",
"budgetary management",
"capability",
"capacity",
"challenge",
"circuit",
"collaboration",
"complexity",
"concept",
"conglomeration",
"contingency",
"core",
"customer loyalty",
"database",
"data-warehouse",
"definition",
"emulation",
"encoding",
"encryption",
"extranet",
"firmware",
"flexibility",
"focus group",
"forecast",
"frame",
"framework",
"function",
"functionalities",
"Graphic Interface",
"groupware",
"Graphical User Interface",
"hardware",
"help-desk",
"hierarchy",
"hub",
"implementation",
"info-mediaries",
"infrastructure",
"initiative",
"installation",
"instruction set",
"interface",
"Internet solution",
"intranet",
"knowledge user",
"knowledgebase",
"Local Area Network",
"leverage",
"matrices",
"matrix",
"methodology",
"middleware",
"migration",
"model",
"moderator",
"monitoring",
"moratorium",
"neural-net",
"open architecture",
"open system",
"orchestration",
"paradigm",
"parallelism",
"policy",
"portal",
"pricing structure",
"process improvement",
"product",
"productivity",
"project",
"projection",
"protocol",
"secured line",
"service-desk",
"software",
"solution",
"standardization",
"strategy",
"structure",
"success",
"superstructure",
"support",
"synergy",
"system engine",
"task-force",
"throughput",
"time-frame",
"toolset",
"utilization",
"website",
"workforce",
),
)
bsWords: Tuple[ElementsType[str], ...] = (
(
"implement",
"utilize",
"integrate",
"streamline",
"optimize",
"evolve",
"transform",
"embrace",
"enable",
"orchestrate",
"leverage",
"reinvent",
"aggregate",
"architect",
"enhance",
"incentivize",
"morph",
"empower",
"envisioneer",
"monetize",
"harness",
"facilitate",
"seize",
"disintermediate",
"synergize",
"strategize",
"deploy",
"brand",
"grow",
"target",
"syndicate",
"synthesize",
"deliver",
"mesh",
"incubate",
"engage",
"maximize",
"benchmark",
"expedite",
"re-intermediate",
"whiteboard",
"visualize",
"repurpose",
"innovate",
"scale",
"unleash",
"drive",
"extend",
"engineer",
"revolutionize",
"generate",
"exploit",
"transition",
"e-enable",
"iterate",
"cultivate",
"matrix",
"productize",
"redefine",
"re-contextualize",
),
(
"clicks-and-mortar",
"value-added",
"vertical",
"proactive",
"robust",
"revolutionary",
"scalable",
"leading-edge",
"innovative",
"intuitive",
"strategic",
"e-business",
"mission-critical",
"sticky",
"one-to-one",
"24/7",
"end-to-end",
"global",
"B2B",
"B2C",
"granular",
"frictionless",
"virtual",
"viral",
"dynamic",
"24/365",
"best-of-breed",
"killer",
"magnetic",
"bleeding-edge",
"web-enabled",
"interactive",
"dot-com",
"back-end",
"real-time",
"efficient",
"front-end",
"distributed",
"seamless",
"extensible",
"turn-key",
"world-class",
"open-source",
"cross-platform",
"cross-media",
"synergistic",
"bricks-and-clicks",
"out-of-the-box",
"enterprise",
"integrated",
"impactful",
"wireless",
"transparent",
"next-generation",
"cutting-edge",
"user-centric",
"visionary",
"customized",
"ubiquitous",
"plug-and-play",
"collaborative",
"compelling",
"holistic",
"rich",
),
(
"synergies",
"web-readiness",
"paradigms",
"markets",
"partnerships",
"infrastructures",
"platforms",
"initiatives",
"channels",
"eyeballs",
"communities",
"ROI",
"solutions",
"e-tailers",
"e-services",
"action-items",
"portals",
"niches",
"technologies",
"content",
"vortals",
"supply-chains",
"convergence",
"relationships",
"architectures",
"interfaces",
"e-markets",
"e-commerce",
"systems",
"bandwidth",
"info-mediaries",
"models",
"mindshare",
"deliverables",
"users",
"schemas",
"networks",
"applications",
"metrics",
"e-business",
"functionalities",
"experiences",
"web services",
"methodologies",
),
)
def company(self) -> str:
"""
:example: 'Acme Ltd'
"""
pattern: str = self.random_element(self.formats)
return self.generator.parse(pattern)
def company_suffix(self) -> str:
"""
:example: 'Ltd'
"""
return self.random_element(self.company_suffixes)
def catch_phrase(self) -> str:
"""
:example: 'Robust full-range hub'
"""
return " ".join([self.random_element(word_list) for word_list in self.catch_phrase_words])
def bs(self) -> str:
"""
:example: 'integrate extensible convergence'
"""
return " ".join([self.random_element(word_list) for word_list in self.bsWords])

View File

@@ -0,0 +1,80 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
"""Company provider for ar_DZ locale (Algeria, Arabic-language)."""
# Sources:
# - https://www.commerce.gov.dz/fr/choix-de-la-forme-juridique-de-votre-entreprise-1
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"مجمع {{last_name}}",
"{{last_name}}",
)
company_suffixes = (
"ش.ذ.م.م",
"ش.م.",
"م.ذ.م.م",
"ش.ت.",
"ش.ت.ب.",
"م.ع.",
"م.ع.ا.ت.",
)
catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",)
nouns = (
"الجودة",
"التميّز",
"الثقة",
"التطوير",
"النمو",
"الابتكار",
"الأداء",
"التقدّم",
"النجاح",
"الخدمة",
"الأمان",
"الشراكة",
)
verbs = (
"للنجاح",
"للتطوير",
"للتقدّم",
"للابتكار",
"للبناء",
"للاستثمار",
"لتحقيق أهدافك",
"لإنجاز مشاريعك",
"للنهوض بالاقتصاد",
"لخدمة الوطن",
)
attributes = (
"معاً",
"بكفاءة",
"بثقة",
"بامتياز",
"باستدامة",
"في خدمة الجزائر",
"نحو المستقبل",
"من أجل غدٍ أفضل",
"في قلب التنمية",
"بجودة عالية",
)
def catch_phrase(self) -> str:
pattern: str = self.random_element(self.catch_phrase_formats)
return self.generator.parse(pattern)
def catch_phrase_noun(self) -> str:
return self.random_element(self.nouns)
def catch_phrase_verb(self) -> str:
return self.random_element(self.verbs)
def catch_phrase_attribute(self) -> str:
return self.random_element(self.attributes)

View File

@@ -0,0 +1,52 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{large_company}}",
)
large_companies = (
"AZAL",
"Azergold",
"SOCAR",
"Socar Polymer",
"Global Export Fruits",
"Baku Steel Company",
"Azersun",
"Sun Food",
"Azərbaycan Şəkər İstehsalat Birliyi",
"Azərsu",
"Xəzər Dəniz Gəmiçiliyi",
"Azərenerji",
"Bakıelektrikşəbəkə",
"Azəralüminium",
"Bravo",
"Azərpambıq Aqrar Sənaye Kompleksi",
"CTS-Agro",
"Azərtütün Aqrar Sənaye Kompleksi",
"Azəripək",
"Azfruittrade",
"AF Holding",
"Azinko Holding",
"Gilan Holding",
"Azpetrol",
"Azərtexnolayn",
"Bakı Gəmiqayırma Zavodu",
"Gəncə Tekstil Fabriki",
"Mətanət A",
"İrşad Electronics",
)
company_suffixes = (
"ASC",
"QSC",
"MMC",
)
def large_company(self) -> str:
"""
:example: 'SOCAR'
"""
return self.random_element(self.large_companies)

View File

@@ -0,0 +1,30 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
company_suffixes = (
"АД",
"AD",
"ADSITz",
"АДСИЦ",
"EAD",
"ЕАД",
"EOOD",
"ЕООД",
"ET",
"ET",
"OOD",
"ООД",
"KD",
"КД",
"KDA",
"КДА",
"SD",
"СД",
)

View File

@@ -0,0 +1,640 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
"""
Implement company provider for ``bn_BD`` locale.
Sources of companies:
- https://en.wikipedia.org/wiki/List_of_companies_of_Bangladesh
"""
companies = (
"প্রাণ-আরএফএল গ্রুপ",
"আকিজ গ্রুপ",
"মেঘনা গ্রুপ অব ইন্ডাস্ট্রিজ",
"বসুন্ধরা গ্রুপ",
"ইস্পাহানি গ্রুপ",
"বাংলাদেশ মেশিন টুলস ফ্যাক্টরী",
"প্রগতি",
"ইউএস-বাংলা এয়ারলাইন্স",
"বিমান বাংলাদেশ এয়ারলাইনস",
"রিজেন্ট এয়ারওয়েজ",
"ইউনাইটেড এয়ারওয়েজ",
"নভোএয়ার",
"বেক্সিমকো গ্রুপ",
"নাভানা গ্ৰুপ",
"স্কয়ার গ্রুপ",
"ট্রান্সকম গ্রুপ",
"বেঙ্গল গ্রুপ",
"যমুনা গ্রুপ",
"নাসির গ্রুপ",
"ট্রান্সকম ডিজিটাল",
"স্কয়ার ইলেকট্রনিক্স",
"রহিম আফরোজ",
"ওয়ালটন",
"বাংলাদেশ ব্যাংক",
"অগ্রণী ব্যাংক",
"জনতা ব্যাংক",
"রূপালী ব্যাংক",
"সোনালী ব্যাংক",
"বাংলাদেশ ডেভেলপমেন্ট ব্যাংক লিমিটেড",
"বেসিক ব্যাংক লিমিটেড",
"আইএফআইসি ব্যাংক লিমিটেড",
"ইউনাইটেড কমার্শিয়াল ব্যাংক লিমিটেড",
"ইস্টার্ন ব্যাংক লিমিটেড",
"উত্তরা ব্যাংক",
"এনআরবি কমার্শিয়াল ব্যাংক লিমিটেড",
"এনআরবি গ্লোবাল ব্যাংক লিমিটেড",
"এনআরবি ব্যাংক লিমিটেড",
"এবি ব্যাংক লিমিটেড",
"এনসিসি ব্যাংক লিমিটেড",
"ওয়ান ব্যাংক লিমিটেড",
"ট্রাস্ট ব্যাংক লিমিটেড",
"ডাচ-বাংলা ব্যাংক লিমিটেড",
"দি ফারমার্স ব্যাংক লিমিটেড",
"ন্যাশনাল ব্যাংক লিমিটেড",
"ঢাকা ব্যাংক লিমিটেড",
"পূবালী ব্যাংক লিমিটেড",
"প্রাইম ব্যাংক লিমিটেড",
"প্রিমিয়ার ব্যাংক লিমিটেড",
"বাংলাদেশ কমার্স ব্যাংক লিমিটেড",
"ব্র্যাক ব্যাংক লিমিটেড",
"ব্যাংক এশিয়া লিমিটেড",
"মধুমতি ব্যাংক লিমিটেড",
"মার্কেন্টাইল ব্যাংক লিমিটেড",
"মিউচুয়াল ট্রাস্ট ব্যাংক",
"মিডল্যান্ড ব্যাংক লিমিটেড",
"মেঘনা ব্যাংক লিমিটেড",
"যমুনা ব্যাংক লিমিটেড",
"সাউথ ইস্ট ব্যাংক লিমিটেড",
"সাউথ বাংলা এগ্রিকালচার এন্ড কমার্স ব্যাংক লিমিটেড",
"সিটি ব্যাংক লিমিটেড",
"সীমান্ত ব্যাংক",
"স্ট্যান্ডার্ড ব্যাংক লিমিটেড",
"আইসিবি ইসলামিক ব্যাংক লিমিটেড",
"আল-আরাফাহ ইসলামী ব্যাংক লিমিটেড",
"ইউনিয়ন ব্যাংক লিমিটেড",
"ইসলামী ব্যাংক বাংলাদেশ লিমিটেড",
"এক্সিম ব্যাংক",
"ফার্স্ট সিকিউরিটিজ ইসলামী ব্যাংক লিমিটেড",
"শাহ্‌জালাল ইসলামী ব্যাংক লিমিটেড",
"সোশ্যাইল ইসলামী ব্যাংক লিমিটেড",
"এইচএসবিসি",
"ওরি ব্যাংক",
"কমার্শিয়াল ব্যাংক অব সিলন",
"ন্যাশনাল ব্যাংক অব পাকিস্তান",
"ব্যাংক আলফালাহ্",
"ভারতীয় স্টেট ব্যাংক",
"সিটিব্যাংক এনএ",
"স্ট্যান্ডার্ড চার্টার্ড ব্যাংক লিমিটেড",
"হাবিব ব্যাংক লিমিটেড",
"বাংলাদেশ কৃষি ব্যাংক",
"রাজশাহী কৃষি উন্নয়ন ব্যাংক",
"আনসার-ভিডিপি উন্নয়ন ব্যাংক",
"কর্মসংস্থান ব্যাংক",
"গ্রামীণ ব্যাংক",
"পল্লী সঞ্চয় ব্যাংক",
"জুবিলী ব্যাংক",
"প্রবাসী কল্যাণ ব্যাংক",
"রাইজ আপ ল্যাবস",
"এটিএন বাংলা",
"বাংলাভিশন",
"চ্যানেল আই (ইমপ্রেস টেলেফিল্ম লিমিটেড/চ্যানেল)",
"এনটিভি (বাংলাদেশ)",
"আরটিভি (বাংলাদেশ)",
"দেশ টিভি",
"ইন্ডিপেন্ডেন্ট টেলিভিশন",
"দৈনিক প্রথম আলো",
"দৈনিক ইত্তেফাক",
"দৈনিক ভোরের কাগজ",
"জাজ মাল্টিমিডিয়া",
"নয়ন-আপন প্রোডাকশন",
"প্যানারোমা মুভিজ",
"এসকে ফিল্মস",
"বেক্সিমকো ফার্মাসিউটিক্যালস",
"ইনসেপ্টা ফার্মাসিউটিক্যালস লিমিটেড",
"স্কয়ার ফার্মাসিটিক্যাল",
"অপসোনিন ফার্মা লিমিটেড",
"একমি ল্যাবরেটরিজ লিমিটেড",
"বাংলাদেশ শিপিং কর্পোরেশন",
"ডকইয়ার্ড অ্যান্ড ইঞ্জিনিয়ারিং ওয়ার্কস লিমিটেড",
"এফএমসি ডকইয়ার্ড",
"গ্রামীণফোন",
"টেলিটক",
"এয়ারটেল (বাংলাদেশ)",
"বাংলালিংক",
"রবি",
"বাংলাদেশ পাওয়ার গ্রিড কোম্পানি",
"ইউনাইটেড কমিউনিকেশন সার্ভিস",
)
company_suffixes = (
"ইনকর্পোরেটেড",
"কর্পোরেশন",
"এন্ড সন্স",
"এন্ড ব্রাদার্স",
"এলএলসি",
"গ্রুপ",
"গ্রুপ অফ কোম্পানিজ",
"পিএলসি",
"লিমিটেড",
"প্রাইভেট লিমিটেড",
"এন্টারপ্রাইজ",
)
catch_phrase_words = (
(
"অভিযোজিত",
"উন্নত",
"উন্নীত",
"আত্তীকরণ",
"স্বয়ংক্রিয়",
"সুষম",
"ব্যবসা কেন্দ্রিক",
"কেন্দ্রীভূত",
"ক্লোন করা",
"উপযুক্ত",
"কনফিগারযোগ্য",
"ক্রস-গ্রুপ",
"ক্রস-প্ল্যাটফর্ম",
"গ্রাহকের দৃষ্টি নিবদ্ধ",
"কাস্টমাইজযোগ্য",
"বিকেন্দ্রীভূত",
"ডি-ইঞ্জিনিয়ারড",
"বিকশিত",
"ডিজিটাইজড",
"বিতরণ করা",
"বৈচিত্র্য",
"নিম্ন আকারের",
"উন্নত",
"এন্টারপ্রাইজ-ওয়াইড",
"অর্গোনমিক",
"এক্সক্লুসিভ",
"প্রসারিত",
"সম্প্রসারিত",
"মুখোমুখি",
"ফোকাসড",
"সামনের লাইন",
"সম্পূর্ণ কনফিগারযোগ্য",
"ফাংশন-ভিত্তিক",
"মৌলিক",
"ভবিষ্যত-প্রমাণ",
"তৃণমূল",
"অনুভূমিক",
"বাস্তবায়িত",
"উদ্ভাবনী",
"সমন্বিত",
"স্বজ্ঞাত",
"বিপরীত",
"পরিচালিত",
"বাধ্যতামূলক",
"পর্যবেক্ষণ করা",
"মাল্টি-চ্যানেলযুক্ত",
"মাল্টি-পার্শ্বিক",
"মাল্টি লেয়ারড",
"মাল্টি টায়ার্ড",
"নেটওয়ার্ক করা",
"বস্তু ভিত্তিক",
"ওপেন আর্কিটেক্টেড",
"মুক্ত উৎস",
"অপারেটিভ",
"অপ্টিমাইজ করা",
"ঐচ্ছিক",
"জৈব",
"সংগঠিত",
"অধ্যবসায়ী",
"অস্থির",
"পর্যায়ক্রমে",
"পোলারাইজড",
"প্রাক-অনুভব",
"প্রোঅ্যাকটিভ",
"লাভ কেন্দ্রিক",
"গভীর",
"প্রোগ্রামেবল",
"প্রগতিশীল",
"পাবলিক-কী",
"মান-কেন্দ্রিক",
"প্রতিক্রিয়াশীল",
"পুনরায় সংগঠিত",
"পুনরায় প্রাসঙ্গিক",
"পুনঃপ্রকৌশলী",
"কমানো",
"বিপরীত প্রকৌশলী",
"ডান মাপের",
"বলিষ্ঠ",
"বিরামহীন",
"সুরক্ষিত",
"স্ব-সক্ষম",
"ভাগযোগ্য",
"একা একা",
"প্রবাহিত",
"পরিবর্তনযোগ্য",
"সিঙ্ক্রোনাইজড",
"সিনারজিস্টিক",
"সমন্বিত",
"দল ভিত্তিক",
"মোট",
"ট্রিপল-বাফার",
"সর্বজনীন",
"উপরের আকার",
"আপগ্রেডযোগ্য",
"ব্যবহারকারীকেন্দ্রিক",
"ব্যবহারকারী বান্ধব",
"বহুমুখী",
"অপার্থিব",
"দূরদর্শী",
"দৃষ্টি-ভিত্তিক",
),
(
"২৪ ঘন্টা",
"২৪/",
"তৃতীয় প্রজন্ম",
"৪র্থ প্রজন্ম",
"৫ম প্রজন্ম",
"ষষ্ঠ প্রজন্ম",
"কার্যকর",
"বিশ্লেষণ",
"অসমমিত",
"অসিঙ্ক্রোনাস",
"মনোভাব-ভিত্তিক",
"পটভূমি",
"ব্যান্ডউইথ-নিরীক্ষণ করা",
"দ্বিমুখী",
"বিভক্ত",
"শেষের সারি",
"স্বচ্ছ চিন্তা",
"ক্লায়েন্ট-চালিত",
"ক্লায়েন্ট সার্ভার",
"সুসংগত",
"সমন্বিত",
"যৌগিক",
"প্রসঙ্গ-সংবেদনশীল",
"প্রসঙ্গ-ভিত্তিক",
"সামগ্রী ভিত্তিক",
"নিবেদিত",
"চাহিদা চালিত",
"শিক্ষামূলক",
"দিকনির্দেশক",
"বিচ্ছিন্ন",
"বিচ্ছিন্ন",
"গতিশীল",
"পরিবেশ কেন্দ্রিক",
"শক্তিকরণ",
"বেষ্টিত",
"সম-কিলড",
"কার্যনির্বাহী",
"স্পষ্ট",
"প্রবাহিত",
"ভ্রান্তি সহিষ্ণুতা",
"পুরোভূমি",
"নতুন চিন্তা",
"পূর্ণ পরিসরে",
"বিশ্বব্যাপী",
"গ্রিড-সক্রিয়",
"হিউরিস্টিক",
"উচ্চস্তর",
"সম্পূর্ণ",
"সমজাতীয়",
"মানব সম্পদ",
"হাইব্রিড",
"প্রভাবমূলক",
"ক্রমবর্ধমান",
"অভেদ্য",
"ইন্টারেক্টিভ",
"মধ্যবর্তী",
"নেতৃস্থানীয় প্রান্ত",
"স্থানীয়",
"লজিস্টিক",
"সর্বোচ্চ করা",
"পদ্ধতিগত",
"মিশন-সমালোচনা",
"মুঠোফোন",
"মডুলার",
"প্রেরণাদায়ক",
"মাল্টিমিডিয়া",
"মাল্টি-স্টেট",
"মাল্টি টাস্কিং",
"জাতীয়",
"প্রয়োজন ভিত্তিক",
"নিরপেক্ষ",
"পরবর্তী প্রজন্ম",
"অস্থির",
"অবজেক্ট ওরিয়েন্টেড",
"অনুকূল",
"অপ্টিমাইজ করা",
"আমূল",
"প্রকৃত সময়",
"পারস্পরিক",
"আঞ্চলিক",
"প্রতিক্রিয়াশীল",
"স্কেলযোগ্য",
"মাধ্যমিক",
"সমাধান ভিত্তিক",
"স্থিতিশীল",
"স্থির",
"পদ্ধতিগত",
"পদ্ধতিগত",
"সিস্টেম-যোগ্য",
"মূর্ত",
"তৃতীয়",
"ক্রান্তিকালীন",
"ইউনিফর্ম",
"উর্ধ্বমুখী প্রবণতা",
"ব্যবহারকারীর মুখোমুখি",
"মূল্য সংযোজন",
"ওয়েব-সক্ষম",
"ভালভাবে পরিমিত",
"শূন্য প্রশাসন",
"শূন্য ত্রুটি",
"শূন্য সহনশীলতা",
),
(
"ক্ষমতা",
"অ্যাক্সেস",
"অ্যাডাপ্টার",
"অ্যালগরিদম",
"জোট",
"বিশ্লেষক",
"আবেদন",
"পন্থা",
"স্থাপত্য",
"আর্কাইভ",
"কৃত্রিম বুদ্ধিমত্তা",
"অ্যারে",
"মনোভাব",
"মাপকাঠি",
"বাজেটারি ব্যবস্থাপনা",
"ক্ষমতা",
"ক্ষমতা",
"চ্যালেঞ্জ",
"সার্কিট",
"সহযোগিতা",
"জটিলতা",
"ধারণা",
"সমষ্টি",
"কমার্জেন্সি",
"মূল",
"ক্রেতা বিশ্বস্ততা",
"তথ্যশালা",
"তথ্য ভাণ্ডার",
"সংজ্ঞা",
"অনুকরণ",
"এনকোডিং",
"জোড়া লাগানো",
"এক্সট্রানেট",
"ফার্মওয়্যার",
"নমনীয়তা",
"ফোকাস গ্রুপ",
"পূর্বাভাস",
"ফ্রেম",
"ফ্রেমওয়ার্ক",
"ফাংশন",
"কার্যকারিতা",
"গ্রাফিক ইন্টারফেস",
"গ্রুপওয়্যার",
"গ্রাফিকাল ইউজার ইন্টারফেস",
"হার্ডওয়্যার",
"সাহায্য ডেস্ক",
"শ্রেণীবিন্যাস",
"হাব",
"বাস্তবায়ন",
"তথ্য মিডিয়ার",
"অবকাঠামো",
"উদ্যোগ",
"স্থাপন",
"নির্দেশনাবলী",
"ইন্টারফেস",
"ইন্টারনেট সমাধান",
"ইন্ট্রানেট",
"জ্ঞান ব্যবহারকারী",
"জ্ঞানভিত্তিক",
"স্থানীয় নেটওয়ার্ক",
"লিভারেজ",
"ম্যাট্রিস",
"ম্যাট্রিক্স",
"পদ্ধতি",
"মিডলওয়্যার",
"অভিবাসন",
"মডেল",
"মডারেটর",
"পর্যবেক্ষণ",
"স্থগিত",
"নিউরাল-নেট",
"উন্মুক্ত স্থাপত্য",
"মুক্ত ব্যবস্থা",
"অর্কেস্ট্রেশন",
"দৃষ্টান্ত",
"সমান্তরালতা",
"নীতি",
"পোর্টাল",
"মূল্যের কাঠামো",
"প্রক্রিয়ার উন্নতি",
"পণ্য",
"প্রমোদ",
"প্রকল্প",
"প্রক্ষেপণ",
"প্রটোকল",
"সুরক্ষিত লাইন",
"পরিষেবা ডেস্ক",
"সফটওয়্যার",
"সমাধান",
"প্রমিতকরণ",
"কৌশল",
"গঠন",
"সফলতা",
"উপরকাঠামো",
"সমর্থন",
"সিনার্জি",
"সিস্টেম ইঞ্জিন",
"বিশেষ কর্মীদল",
"থ্রুপুট",
"সময়সীমা",
"টুলসেট",
"ব্যবহার",
"ওয়েবসাইট",
"শ্রমিক",
),
)
bsWords = (
(
"বাস্তবায়ন",
"ব্যবহার করুন",
"একীকরণ",
"স্ট্রিমলাইন",
"অপ্টিমাইজ করুন",
"বিকশিত",
"রূপান্তর",
"আলিঙ্গন",
"সক্ষম",
"অর্কেস্ট্রেট",
"লিভারেজ",
"পুনরাবিষ্কার",
"সমষ্টি",
"স্থপতি",
"বর্ধিত করা",
"উদ্দীপনা",
"রূপ",
"ক্ষমতায়ন",
"কল্পনাকারী",
"নগদীকরণ",
"কাজে লাগান",
"সহজতর করা",
"জব্দ",
"বিচ্ছিন্ন",
"সমন্বয় করা",
"কৌশল করা",
"মোতায়েন",
"ব্র্যান্ড",
"বড়",
"লক্ষ্য",
"সিন্ডিকেট",
"সংশ্লেষণ",
"বিলি করা",
"জাল",
"ইনকিউবেট",
"নিয়োগ",
"সর্বোচ্চ করুন",
"মাপকাঠি",
"ত্বরান্বিত করা",
"পুনরায় মধ্যবর্তী",
"হোয়াইটবোর্ড",
"ভিজ্যুয়ালাইজ",
"পুনঃউদ্দেশ্য",
"উদ্ভাবন",
"স্কেল",
"মুক্ত করা",
"ড্রাইভ",
"প্রসারিত করা",
"প্রকৌশলী",
"বিপ্লব",
"উত্পন্ন করুন",
"শোষণ",
"পরিবর্তন",
"ই-সক্ষম",
"পুনরাবৃত্তি",
"চাষ করা",
"ম্যাট্রিক্স",
"উৎপাদন করা",
"পুনরায় সংজ্ঞায়িত করুন",
"পুনরায় প্রাসঙ্গিককরণ",
),
(
"ক্লিক এবং মর্টার",
"মূল্য সংযোজন",
"উল্লম্ব",
"সক্রিয়",
"বলিষ্ঠ",
"বিপ্লবী",
"স্কেলযোগ্য",
"নেতৃস্থানীয় প্রান্ত",
"উদ্ভাবনী",
"স্বজ্ঞাত",
"কৌশলগত",
"ই-ব্যবসা",
"মিশন-সমালোচনা",
"আঠালো",
"একের পর এক",
"24/7",
"সর্বশেষ সীমা",
"বিশ্বব্যাপী",
"B2B",
"B2C",
"দানাদার",
"ঘর্ষণহীন",
"অপার্থিব",
"ভাইরাল",
"গতিশীল",
"24/365",
"সর্বোত্তম জাত",
"হত্যাকারী",
"চৌম্বকীয়",
"রক্তপাতের প্রান্ত",
"ওয়েব-সক্ষম",
"ইন্টারেক্টিভ",
"ডট-কম",
"ব্যাক-এন্ড",
"প্রকৃত সময়",
"দক্ষ",
"সামনের অংশ",
"বিতরণ করা",
"বিরামহীন",
"সম্প্রসারণযোগ্য",
"টার্ন-কি",
"বিশ্বমানের",
"মুক্ত উৎস",
"ক্রস-প্ল্যাটফর্ম",
"ক্রস-মিডিয়া",
"সিনারজিস্টিক",
"ইট-এন্ড-ক্লিক",
"বাক্সের বাইরে",
"এন্টারপ্রাইজ",
"সমন্বিত",
"প্রভাবমূলক",
"বেতার",
"স্বচ্ছ",
"পরবর্তী প্রজন্ম",
"অত্যাধুনিক",
"ব্যবহারকারীকেন্দ্রিক",
"দূরদর্শী",
"কাস্টমাইজড",
"সর্বব্যাপী",
"প্লাগ-এন্ড-প্লে",
"সহযোগী",
"আবশ্যক",
"সম্পূর্ণ",
"ধনী",
),
(
"ঐকতান",
"ওয়েব-প্রস্তুতি",
"দৃষ্টান্ত",
"বাজার",
"অংশীদারিত্ব",
"অবকাঠামো",
"প্ল্যাটফর্ম",
"উদ্যোগ",
"চ্যানেল",
"চোখের বল",
"সম্প্রদায়",
"ROI",
"সমাধান",
"ই-টেইলার",
"ই-পরিষেবা",
"অ্যাকশন-আইটেম",
"পোর্টাল",
"কুলুঙ্গি",
"প্রযুক্তি",
"সামগ্রী",
"ঘূর্ণি",
"সরবারহ শৃঙ্খল",
"সম্মিলন",
"সম্পর্ক",
"স্থাপত্য",
"ইন্টারফেস",
"ই-মার্কেট",
"ই-কমার্স",
"সিস্টেম",
"ব্যান্ডউইথ",
"তথ্য মিডিয়ার",
"মডেল",
"মনের ভাগ",
"প্রসবযোগ্য",
"ব্যবহারকারী",
"স্কিমাস",
"নেটওয়ার্ক",
"অ্যাপ্লিকেশন",
"মেট্রিক্স",
"ই-ব্যবসা",
"কার্যকারিতা",
"অভিজ্ঞতা",
"ওয়েব সার্ভিস",
"পদ্ধতি",
),
)
def company(self) -> str:
"""
:example: 'ইস্পাহানি গ্রুপ'
"""
return self.random_element(self.companies)

View File

@@ -0,0 +1,19 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
# Company suffixes are from
# https://cs.wikipedia.org/wiki/Obchodn%C3%AD_spole%C4%8Dnost
company_suffixes = (
"s.r.o.",
"o.s.",
"a.s.",
"v.o.s.",
"k.s.",
)

View File

@@ -0,0 +1,14 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} & {{last_name}} {{company_suffix}}",
"{{last_name}} & Søn {{company_suffix}}",
)
company_suffixes = (
"A/S",
"ApS",
)

View File

@@ -0,0 +1,26 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
# Source: https://www.wko.at/wirtschaftsrecht/gesellschaftsformen-oesterreich
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}} & {{last_name}} {{company_suffix}}",
)
company_suffixes = (
"AG",
"AG",
"AG",
"GesbR",
"GmbH",
"GmbH",
"GmbH",
"KG",
"KG",
"KG",
"OG",
"e.V.",
)

View File

@@ -0,0 +1,23 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
# Source: https://de.wikipedia.org/wiki/Firma#Schweizerisches_Recht
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
)
company_suffixes = (
"AG",
"AG",
"AG",
"GmbH",
"GmbH",
"GmbH",
"& Co.",
"& Partner",
"& Cie.",
"& Söhne",
)

View File

@@ -0,0 +1,38 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
company_suffixes = (
"AG",
"AG",
"AG",
"AG",
"AG & Co. KG",
"AG & Co. KGaA",
"AG & Co. OHG",
"GbR",
"GbR",
"GmbH",
"GmbH",
"GmbH",
"GmbH",
"GmbH & Co. KG",
"GmbH & Co. KG",
"GmbH & Co. KGaA",
"GmbH & Co. OHG",
"KG",
"KG",
"KG",
"KGaA",
"OHG mbH",
"Stiftung & Co. KG",
"Stiftung & Co. KGaA",
"e.G.",
"e.V.",
)

View File

@@ -0,0 +1,11 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}}",
"{{last_name}}-{{last_name}} {{company_suffix}}",
"{{last_name}}, {{last_name}} και {{last_name}}",
)
company_suffixes = ("Α.Ε.", "και υιοί", "Ο.Ε.", "Α.Β.Ε.Ε.", "Α.Ε. ΟΜΙΛΟΣ ΕΤΑΙΡΕΙΩΝ")

View File

@@ -0,0 +1,147 @@
from collections import OrderedDict
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
"""
Provider for company names for en_PH locale
Company naming scheme and probabilities are inspired by and/or based on existing companies in the Philippines.
Sources:
- https://en.wikipedia.org/wiki/List_of_companies_of_the_Philippines
- https://www.pse.com.ph/stockMarket/listedCompanyDirectory.html
"""
formats = OrderedDict(
[
(
"{{random_company_adjective}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}",
0.24,
),
(
"{{random_company_acronym}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}",
0.24,
),
(
"{{last_name}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}",
0.16,
),
("{{random_company_adjective}} {{company_type}} {{company_suffix}}", 0.12),
("{{random_company_acronym}} {{company_type}} {{company_suffix}}", 0.12),
("{{last_name}} {{company_type}} {{company_suffix}}", 0.09),
(
"National {{random_company_product}} Corporation of the Philippines",
0.03,
),
]
)
company_suffixes = OrderedDict(
[
("Inc.", 0.45),
("Corporation", 0.45),
("Limited", 0.1),
]
)
company_types = (
"Bank",
"Banking",
"Capital",
"Company",
"Construction",
"Development",
"Enterprise",
"Equities",
"Finance",
"Foods",
"Group",
"Holdings",
"Hotel",
"Manufacturing",
"Mining",
"Properties",
"Resorts",
"Resources",
"Services",
"Shipping",
"Solutions",
"Technologies",
"Trust",
"Ventures",
)
company_products = (
"Bottle",
"Coconut",
"Computer",
"Electricity",
"Flour",
"Furniture",
"Glass",
"Newspaper",
"Pillow",
"Water",
)
company_nouns = (
"Century",
"City",
"Crown",
"Dragon",
"Empire",
"Genesis",
"Gold",
"King",
"Liberty",
"Millennium",
"Morning",
"Silver",
"Star",
"State",
"Summit",
"Sun",
"Union",
"World",
)
company_adjectives = (
"Advanced",
"Rising",
"Double",
"Triple",
"Quad",
"Allied",
"Cyber",
"Sovereign",
"Great",
"Far",
"Northern",
"Southern",
"Eastern",
"Western",
"First",
"Filipino",
"Grand",
"Manila",
"Mega",
"Metro",
"Global",
"Pacific",
"Oriental",
"Philippine",
"Prime",
)
def company_type(self) -> str:
return self.random_element(self.company_types)
def random_company_adjective(self) -> str:
return self.random_element(self.company_adjectives)
def random_company_noun_chain(self) -> str:
return " ".join(self.random_elements(self.company_nouns, length=self.random_int(1, 2), unique=True))
def random_company_product(self) -> str:
return self.random_element(self.company_products)
def random_company_acronym(self) -> str:
letters = self.random_letters(self.random_int(2, 4))
return "".join(letters).upper()

View File

@@ -0,0 +1,5 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
pass

View File

@@ -0,0 +1,442 @@
from ... import ElementsType
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{company_prefix}} {{last_name}} y {{last_name}} {{company_suffix}}",
"{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}} {{company_suffix}}",
"{{company_prefix}} {{last_name}} y Asociados {{company_suffix}}",
"{{last_name}}, {{last_name}} y {{last_name}} {{company_suffix}}",
"{{last_name}} y {{last_name}} {{company_suffix}}",
"{{name}} E.I.R.L.",
"{{name}} EIRL",
)
catch_phrase_words = (
(
"habilidad",
"acceso",
"adaptador",
"algoritmo",
"alianza",
"analista",
"aplicación",
"enfoque",
"arquitectura",
"archivo",
"inteligencia artificial",
"array",
"actitud",
"medición",
"gestión presupuestaria",
"capacidad",
"desafío",
"circuito",
"colaboración",
"complejidad",
"concepto",
"conglomeración",
"contingencia",
"núcleo",
"fidelidad",
"base de datos",
"data-warehouse",
"definición",
"emulación",
"codificar",
"encriptar",
"extranet",
"firmware",
"flexibilidad",
"focus group",
"previsión",
"base de trabajo",
"función",
"funcionalidad",
"interfaz gráfica",
"groupware",
"interfaz gráfico de usuario",
"hardware",
"soporte",
"jerarquía",
"conjunto",
"implementación",
"infraestructura",
"iniciativa",
"instalación",
"conjunto de instrucciones",
"interfaz",
"intranet",
"base del conocimiento",
"red de area local",
"aprovechar",
"matrices",
"metodologías",
"middleware",
"migración",
"modelo",
"moderador",
"monitorizar",
"arquitectura abierta",
"sistema abierto",
"orquestar",
"paradigma",
"paralelismo",
"política",
"portal",
"estructura de precios",
"proceso de mejora",
"producto",
"productividad",
"proyecto",
"proyección",
"protocolo",
"línea segura",
"software",
"solución",
"estandarización",
"estrategia",
"estructura",
"éxito",
"superestructura",
"soporte",
"sinergia",
"mediante",
"marco de tiempo",
"caja de herramientas",
"utilización",
"website",
"fuerza de trabajo",
),
(
"24 horas",
"24/7",
"3ra generación",
"4ta generación",
"5ta generación",
"6ta generación",
"analizada",
"asimétrica",
"asíncrona",
"monitorizada por red",
"bidireccional",
"bifurcada",
"generada por el cliente",
"cliente-servidor",
"coherente",
"cohesiva",
"compuesto",
"sensible al contexto",
"basado en el contexto",
"basado en contenido",
"dedicada",
"generado por la demanda",
"didáctica",
"direccional",
"discreta",
"dinámica",
"potenciada",
"acompasada",
"ejecutiva",
"explícita",
"tolerante a fallos",
"innovadora",
"amplio abanico",
"global",
"heurística",
"alto nivel",
"holística",
"homogénea",
"híbrida",
"incremental",
"intangible",
"interactiva",
"intermedia",
"local",
"logística",
"maximizada",
"metódica",
"misión crítica",
"móvil",
"modular",
"motivadora",
"multimedia",
"multiestado",
"multitarea",
"nacional",
"basado en necesidades",
"neutral",
"nueva generación",
"no-volátil",
"orientado a objetos",
"óptima",
"optimizada",
"radical",
"tiempo real",
"recíproca",
"regional",
"escalable",
"secundaria",
"orientada a soluciones",
"estable",
"estática",
"sistemática",
"sistémica",
"tangible",
"terciaria",
"transicional",
"uniforme",
"valor añadido",
"vía web",
"defectos cero",
"tolerancia cero",
),
(
"adaptativo",
"avanzado",
"asimilado",
"automatizado",
"balanceado",
"enfocado al negocio",
"centralizado",
"clonado",
"compatible",
"configurable",
"multiplataforma",
"enfocado al cliente",
"personalizable",
"descentralizado",
"digitalizado",
"distribuido",
"diverso",
"mejorado",
"en toda la empresa",
"ergonómico",
"exclusivo",
"expandido",
"extendido",
"cara a cara",
"enfocado",
"de primera línea",
"totalmente configurable",
"basado en funcionalidad",
"fundamental",
"horizontal",
"implementado",
"innovador",
"integrado",
"intuitivo",
"inverso",
"administrado",
"mandatorio",
"monitoreado",
"multicanal",
"multilateral",
"multi-capas",
"en red",
"basado en objetos",
"de arquitectura abierta",
"open-source",
"operativo",
"optimizado",
"opcional",
"orgánico",
"organizado",
"perseverante",
"persistente",
"polarizado",
"preventivo",
"proactivo",
"enfocado a ganancias",
"programable",
"progresivo",
"llave pública",
"enfocado a la calidad",
"reactivo",
"realineado",
"recontextualizado",
"reducido",
"con ingeniería inversa",
"de tamaño adecuado",
"robusto",
"seguro",
"compartible",
"sincronizado",
"orientado a equipos",
"total",
"universal",
"actualizable",
"centrado en el usuario",
"versátil",
"virtual",
"visionario",
),
)
bsWords = (
(
"implementa",
"utiliza",
"integra",
"optimiza",
"evoluciona",
"transforma",
"abraza",
"habilita",
"orquesta",
"reinventa",
"agrega",
"mejora",
"incentiva",
"modifica",
"empodera",
"monetiza",
"fortalece",
"facilita",
"sinergiza",
"crea marca",
"crece",
"sintetiza",
"entrega",
"mezcla",
"incuba",
"compromete",
"maximiza",
"visualiza",
"innova",
"escala",
"libera",
"maneja",
"extiende",
"revoluciona",
"genera",
"explota",
"transiciona",
"itera",
"cultiva",
"redefine",
"recontextualiza",
),
(
"sinergias",
"paradigmas",
"marcados",
"socios",
"infraestructuras",
"plataformas",
"iniciativas",
"canales",
"communidades",
"ROI",
"soluciones",
"portales",
"nichos",
"tecnologías",
"contenido",
"cadena de producción",
"convergencia",
"relaciones",
"arquitecturas",
"interfaces",
"comercio electrónico",
"sistemas",
"ancho de banda",
"modelos",
"entregables",
"usuarios",
"esquemas",
"redes",
"aplicaciones",
"métricas",
"funcionalidades",
"experiencias",
"servicios web",
"metodologías",
),
(
"valor agregado",
"verticales",
"proactivas",
"robustas",
"revolucionarias",
"escalables",
"de punta",
"innovadoras",
"intuitivas",
"estratégicas",
"e-business",
"de misión crítica",
"uno-a-uno",
"24/7",
"end-to-end",
"globales",
"B2B",
"B2C",
"granulares",
"sin fricciones",
"virtuales",
"virales",
"dinámicas",
"24/365",
"magnéticas",
"listo para la web",
"interactivas",
"punto-com",
"sexi",
"en tiempo real",
"eficientes",
"front-end",
"distribuidas",
"extensibles",
"llave en mano",
"de clase mundial",
"open-source",
"plataforma cruzada",
"de paquete",
"empresariales",
"integrado",
"impacto total",
"inalámbrica",
"transparentes",
"de siguiente generación",
"lo último",
"centrado al usuario",
"visionarias",
"personalizado",
"ubicuas",
"plug-and-play",
"colaborativas",
"holísticas",
"ricas",
),
)
company_prefixes: ElementsType[str] = (
"Corporación",
"Compañía",
"Comercial",
"Despacho",
"Grupo",
"Holding",
"Club",
"Industrias",
"Laboratorio",
"Proyectos",
)
company_suffixes: ElementsType[str] = (
"Sociedad Anónima",
"Limitada",
"S.A.",
"S.p.A.",
"SPA",
"Ltda.",
)
def company_prefix(self) -> str:
"""
:example: 'Grupo'
"""
return self.random_element(self.company_prefixes)

View File

@@ -0,0 +1,127 @@
from collections import OrderedDict
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
"""
Provider for company names for es_ES locale
Company naming scheme and probabilities are inspired by and/or based on existing companies in Spain.
Sources:
- https://en.wikipedia.org/wiki/List_of_legal_entity_types_by_country
- https://ranking-empresas.eleconomista.es/ranking_empresas_nacional.html
"""
formats = (
"{{company_prefix}} {{last_name}} {{company_suffix}}",
"{{company_type}} {{random_company_acronym}} {{company_suffix}}",
"{{company_type}} {{last_name}} {{company_suffix}}",
"{{company_type}} {{random_company_adjective}} {{company_suffix}}",
"{{company_type}} {{last_name}} {{random_name_complements}} {{company_suffix}}",
"{{last_name}} {{random_name_complements}} {{company_suffix}}",
"{{last_name}} y {{last_name}} {{company_suffix}}",
"{{first_name}} {{last_name}} {{last_name}} {{company_suffix}}",
)
company_suffixes = OrderedDict(
[
("S.A.", 0.19860906),
("S.A.D", 0.01020618),
("S.A.T.", 0.02307813),
("S.A.U", 0.01506562),
("S.C.P", 0.04465719),
("S.Com.", 0.15636432),
("S.Coop.", 0.17394866),
("S.L.", 0.18325857),
("S.L.L.", 0.05800693),
("S.L.N.E", 0.11496705),
("S.L.U.", 0.02183831),
]
)
company_prefixes = (
"Familia",
"Grupo",
"Hermanos",
"Hnos",
)
company_types = (
"Alimentación",
"Banca Privada",
"Banco",
"Comercial",
"Comercializadora",
"Compañía",
"Construcción",
"Consultoría",
"Desarrollo",
"Despacho",
"Distribuciones",
"Farmaceútica",
"Finanzas",
"Fábrica",
"Hotel",
"Industrias",
"Infraestructuras",
"Inmobiliaria",
"Instalaciones",
"Inversiones",
"Logística",
"Manufacturas",
"Minería",
"Promociones",
"Restauración",
"Servicios",
"Soluciones",
"Suministros",
"Supermercados",
"Talleres",
"Tecnologías",
"Transportes",
)
name_complements = (
"& Asociados",
"y asociados",
)
company_adjectives = (
"Avanzadas",
"Castellana",
"Española",
"Españolas",
"Globales",
"Iberia",
"Ibérica",
"Ibéricos",
"Integrales",
"Inteligentes",
"Internacionales",
"del Levante",
"del Mediterráneo",
"del Noroeste",
"del Norte",
"del Sur",
)
def company_type(self) -> str:
return self.random_element(self.company_types)
def company_suffix(self) -> str:
return self.random_element(self.company_suffixes)
def random_name_complements(self) -> str:
return self.random_element(self.name_complements)
def random_company_adjective(self) -> str:
return self.random_element(self.company_adjectives)
def random_company_acronym(self) -> str:
letters = self.random_letters(self.random_int(2, 4))
return "".join(letters).upper()
def company_prefix(self) -> str:
return self.random_element(self.company_prefixes)

View File

@@ -0,0 +1,439 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}}",
"{{company_prefix}} {{last_name}}-{{last_name}}",
"{{company_prefix}} {{last_name}} y {{last_name}}",
"{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}}",
"{{last_name}}-{{last_name}} {{company_suffix}}",
"{{last_name}}, {{last_name}} y {{last_name}}",
"{{last_name}} y {{last_name}} {{company_suffix}}",
)
catch_phrase_words = (
(
"habilidad",
"acceso",
"adaptador",
"algoritmo",
"alianza",
"analista",
"aplicación",
"enfoque",
"arquitectura",
"archivo",
"inteligencia artificial",
"array",
"actitud",
"medición",
"gestión presupuestaria",
"capacidad",
"desafío",
"circuito",
"colaboración",
"complejidad",
"concepto",
"conglomeración",
"contingencia",
"núcleo",
"fidelidad",
"base de datos",
"data-warehouse",
"definición",
"emulación",
"codificar",
"encriptar",
"extranet",
"firmware",
"flexibilidad",
"focus group",
"previsión",
"base de trabajo",
"función",
"funcionalidad",
"interfaz gráfica",
"groupware",
"interfaz gráfico de usuario",
"hardware",
"soporte",
"jerarquía",
"conjunto",
"implementación",
"infraestructura",
"iniciativa",
"instalación",
"conjunto de instrucciones",
"interfaz",
"intranet",
"base del conocimiento",
"red de area local",
"aprovechar",
"matrices",
"metodologías",
"middleware",
"migración",
"modelo",
"moderador",
"monitorizar",
"arquitectura abierta",
"sistema abierto",
"orquestar",
"paradigma",
"paralelismo",
"política",
"portal",
"estructura de precios",
"proceso de mejora",
"producto",
"productividad",
"proyecto",
"proyección",
"protocolo",
"línea segura",
"software",
"solución",
"estandarización",
"estrategia",
"estructura",
"éxito",
"superestructura",
"soporte",
"sinergia",
"mediante",
"marco de tiempo",
"caja de herramientas",
"utilización",
"website",
"fuerza de trabajo",
),
(
"24 horas",
"24/7",
"3ra generación",
"4ta generación",
"5ta generación",
"6ta generación",
"analizada",
"asimétrica",
"asíncrona",
"monitorizada por red",
"bidireccional",
"bifurcada",
"generada por el cliente",
"cliente-servidor",
"coherente",
"cohesiva",
"compuesto",
"sensible al contexto",
"basado en el contexto",
"basado en contenido",
"dedicada",
"generado por la demanda",
"didáctica",
"direccional",
"discreta",
"dinámica",
"potenciada",
"acompasada",
"ejecutiva",
"explícita",
"tolerante a fallos",
"innovadora",
"amplio abanico",
"global",
"heurística",
"alto nivel",
"holística",
"homogénea",
"híbrida",
"incremental",
"intangible",
"interactiva",
"intermedia",
"local",
"logística",
"maximizada",
"metódica",
"misión crítica",
"móvil",
"modular",
"motivadora",
"multimedia",
"multiestado",
"multitarea",
"nacional",
"basado en necesidades",
"neutral",
"nueva generación",
"no-volátil",
"orientado a objetos",
"óptima",
"optimizada",
"radical",
"tiempo real",
"recíproca",
"regional",
"escalable",
"secundaria",
"orientada a soluciones",
"estable",
"estática",
"sistemática",
"sistémica",
"tangible",
"terciaria",
"transicional",
"uniforme",
"valor añadido",
"vía web",
"defectos cero",
"tolerancia cero",
),
(
"adaptativo",
"avanzado",
"asimilado",
"automatizado",
"balanceado",
"enfocado al negocio",
"centralizado",
"clonado",
"compatible",
"configurable",
"multiplataforma",
"enfocado al cliente",
"personalizable",
"descentralizado",
"digitalizado",
"distribuido",
"diverso",
"mejorado",
"en toda la empresa",
"ergonómico",
"exclusivo",
"expandido",
"extendido",
"cara a cara",
"enfocado",
"de primera línea",
"totalmente configurable",
"basado en funcionalidad",
"fundamental",
"horizontal",
"implementado",
"innovador",
"integrado",
"intuitivo",
"inverso",
"administrado",
"mandatorio",
"monitoreado",
"multicanal",
"multilateral",
"multi-capas",
"en red",
"basado en objetos",
"de arquitectura abierta",
"open-source",
"operativo",
"optimizado",
"opcional",
"orgánico",
"organizado",
"perseverante",
"persistente",
"polarizado",
"preventivo",
"proactivo",
"enfocado a ganancias",
"programable",
"progresivo",
"llave pública",
"enfocado a la calidad",
"reactivo",
"realineado",
"recontextualizado",
"reducido",
"con ingeniería inversa",
"de tamaño adecuado",
"robusto",
"seguro",
"compartible",
"sincronizado",
"orientado a equipos",
"total",
"universal",
"actualizable",
"centrado en el usuario",
"versátil",
"virtual",
"visionario",
),
)
bsWords = (
(
"implementa",
"utiliza",
"integra",
"optimiza",
"evoluciona",
"transforma",
"abraza",
"habilita",
"orquesta",
"reinventa",
"agrega",
"mejora",
"incentiva",
"modifica",
"empodera",
"monetiza",
"fortalece",
"facilita",
"sinergiza",
"crea marca",
"crece",
"sintetiza",
"entrega",
"mezcla",
"incuba",
"compromete",
"maximiza",
"visualiza",
"innova",
"escala",
"libera",
"maneja",
"extiende",
"revoluciona",
"genera",
"explota",
"transiciona",
"itera",
"cultiva",
"redefine",
"recontextualiza",
),
(
"sinergias",
"paradigmas",
"marcados",
"socios",
"infraestructuras",
"plataformas",
"iniciativas",
"canales",
"communidades",
"ROI",
"soluciones",
"portales",
"nichos",
"tecnologías",
"contenido",
"cadena de producción",
"convergencia",
"relaciones",
"arquitecturas",
"interfaces",
"comercio electrónico",
"sistemas",
"ancho de banda",
"modelos",
"entregables",
"usuarios",
"esquemas",
"redes",
"aplicaciones",
"métricas",
"funcionalidades",
"experiencias",
"servicios web",
"metodologías",
),
(
"valor agregado",
"verticales",
"proactivas",
"robustas",
"revolucionarias",
"escalables",
"de punta",
"innovadoras",
"intuitivas",
"estratégicas",
"e-business",
"de misión crítica",
"uno-a-uno",
"24/7",
"end-to-end",
"globales",
"B2B",
"B2C",
"granulares",
"sin fricciones",
"virtuales",
"virales",
"dinámicas",
"24/365",
"magnéticas",
"listo para la web",
"interactivas",
"punto-com",
"sexi",
"en tiempo real",
"eficientes",
"front-end",
"distribuidas",
"extensibles",
"llave en mano",
"de clase mundial",
"open-source",
"plataforma cruzada",
"de paquete",
"empresariales",
"integrado",
"impacto total",
"inalámbrica",
"transparentes",
"de siguiente generación",
"lo último",
"centrado al usuario",
"visionarias",
"personalizado",
"ubicuas",
"plug-and-play",
"colaborativas",
"holísticas",
"ricas",
),
)
company_preffixes = (
"Despacho",
"Grupo",
"Corporacin",
"Club",
"Industrias",
"Laboratorios",
"Proyectos",
)
company_suffixes = (
"A.C.",
"S.A.",
"S.A. de C.V.",
"S.C.",
"S. R.L. de C.V.",
"e Hijos",
"y Asociados",
)
def company_prefix(self) -> str:
"""
:example: 'Grupo'
"""
return self.random_element(self.company_preffixes)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
company_suffixes = (
"As Oy",
"Tmi",
"Oy",
"Oyj",
"Ky",
"Osk",
"ry",
)
def company_business_id(self) -> str:
"""
Returns Finnish company Business Identity Code (y-tunnus).
Format is 8 digits - e.g. FI99999999,[8] last digit is a check
digit utilizing MOD 11-2. The first digit is zero for some old
organizations. This function provides current codes starting with
non-zero.
"""
def calculate_checksum(number: str) -> str:
"""Calculate the checksum using mod 11,2 method"""
factors = [7, 9, 10, 5, 8, 4, 2]
sum_ = 0
for x, y in zip(number, factors):
sum_ = sum_ + int(x) * y
if sum_ % 11 == 1:
raise ValueError("Checksum 1 is invalid")
if sum_ % 11 == 0:
return "0"
else:
return str(11 - sum_ % 11)
while True:
first_digit = str(self.random_digit_not_null())
body = first_digit + self.bothify("######")
try:
cs = calculate_checksum(body)
except ValueError:
continue
return body + "-" + str(cs)
def company_vat(self) -> str:
"""
Returns Finnish VAT identification number (Arvonlisaveronumero).
This can be calculated from company business identity code by
adding prefix "FI" and removing dash before checksum.
"""
def convert_to_vat(business_id: str) -> str:
"""
Convert business id to VATIN
"""
return "FI" + business_id.replace("-", "")
return convert_to_vat(self.company_business_id())

View File

@@ -0,0 +1,94 @@
from collections import OrderedDict
from typing import Sequence
from ..en_PH import Provider as EnPhProvider
class Provider(EnPhProvider):
"""
Provider for company names for fil_PH locale
Companies in the Philippines rarely have Filipino names, and when they do, the English name is usually used way more
frequently by the locals. In some cases, the Filipino names are more like in Taglish, so for the purposes of this
provider, only English company names will be generated for this locale.
Company and brand taglines in pure Filipino, however, are much more common, so this provider will generate catch
phrases in pure Filipino randomly alongside the English ones.
"""
catch_phrase_formats = OrderedDict(
[
("{{english_catch_phrase}}", 0.64),
(
"Ang {{random_noun_ish_good_trait}} ng {{random_object_of_concern}}!",
0.12,
),
(
"Serbisyong {{random_good_service_adjective}} para sa {{random_object_of_concern}}!",
0.12,
),
("Kahit kailan, {{random_good_service_adjective_chain}}!", 0.12),
]
)
noun_ish_good_traits = (
"bida",
"ginhawa",
"haligi",
"karangalan",
"lingkod",
"liwanag",
"numero uno",
"pag-asa",
"tulay",
)
good_service_adjectives = (
"bida",
"dekalidad",
"hindi umaatras",
"kakaiba",
"maasahan",
"magaling",
"mapatitiwalaan",
"numero uno",
"panalo",
"tagumpay",
"tama",
"tapat",
"totoo",
"tunay",
"walang kapantay",
"walang katulad",
"walang tatalo",
)
objects_of_concern = [
"Filipino",
"Pilipinas",
"Pilipino",
"Pinoy",
"bahay",
"bansa",
"bayan",
"buhay",
"mamamayan",
"mundo",
"tahanan",
]
def random_noun_ish_good_trait(self) -> str:
return self.random_element(self.noun_ish_good_traits)
def random_good_service_adjective(self) -> str:
return self.random_element(self.good_service_adjectives)
def random_good_service_adjective_chain(self) -> str:
adjectives: Sequence[str] = self.random_elements(self.good_service_adjectives, length=2, unique=True)
return " at ".join(adjectives)
def random_object_of_concern(self) -> str:
return self.random_element(self.objects_of_concern)
def english_catch_phrase(self) -> str:
return super().catch_phrase()
def catch_phrase(self) -> str:
return self.random_element(self.catch_phrase_formats)

View File

@@ -0,0 +1,40 @@
from typing import List
from ..fr_FR import Provider as CompanyProvider
class Provider(CompanyProvider):
company_suffixes = ("SA", "Sàrl.")
def ide(self) -> str:
"""
Generates a IDE number (9 digits).
http://www.bfs.admin.ch/bfs/portal/fr/index/themen/00/05/blank/03/02.html
"""
def _checksum(digits: List[int]) -> int:
factors = (5, 4, 3, 2, 7, 6, 5, 4)
sum_ = 0
for i in range(len(digits)):
sum_ += digits[i] * factors[i]
return sum_ % 11
while True:
# create an array of first 8 elements initialized randomly
digits = self.generator.random.sample(range(10), 8)
# sum those 8 digits according to (part of) the "modulo 11"
sum_ = _checksum(digits)
# determine the last digit to make it qualify the test
control_number = 11 - sum_
if control_number != 10:
digits.append(control_number)
break
digits = "".join([str(digit) for digit in digits])
# finally return our random but valid BSN
return "CHE-" + digits[0:3] + "." + digits[3:6] + "." + digits[6:9]
uid = ide
# uid: german name for ide
idi = ide
# idi: italian name for ide

View File

@@ -0,0 +1,87 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
"""Company provider for fr_DZ locale (Algeria, French-language)."""
# Sources:
# - https://www.commerce.gov.dz/fr/choix-de-la-forme-juridique-de-votre-entreprise-1
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}} et Associés",
"{{last_name}} & {{last_name}}",
"{{last_name}}",
)
company_suffixes = (
"SARL",
"S.A.R.L.",
"SPA",
"S.P.A.",
"EURL",
"E.U.R.L.",
"SNC",
"S.N.C.",
"SCS",
"S.C.S.",
"SEM",
"EP",
"EPIC",
)
catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",)
nouns = (
"la qualité",
"l'excellence",
"la confiance",
"le développement",
"la croissance",
"l'innovation",
"la performance",
"le progrès",
"la réussite",
"le service",
"la sécurité",
"le partenariat",
)
verbs = (
"de réussir",
"d'avancer",
"d'évoluer",
"de se développer",
"d'innover",
"de progresser",
"d'investir",
"de construire",
"d'atteindre vos objectifs",
"de concrétiser vos projets",
)
attributes = (
"ensemble",
"durablement",
"efficacement",
"avec confiance",
"en toute sécurité",
"pour demain",
"pour l'avenir",
"au service du pays",
"au cœur du développement",
"avec excellence",
)
def catch_phrase(self) -> str:
pattern: str = self.random_element(self.catch_phrase_formats)
return self.generator.parse(pattern)
def catch_phrase_noun(self) -> str:
return self.random_element(self.nouns)
def catch_phrase_verb(self) -> str:
return self.random_element(self.verbs)
def catch_phrase_attribute(self) -> str:
return self.random_element(self.attributes)

View File

@@ -0,0 +1,439 @@
from typing import Optional, Tuple
from faker.utils.checksums import calculate_luhn
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
"{{last_name}}",
)
catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",)
nouns = (
"la sécurité",
"le plaisir",
"le confort",
"la simplicité",
"l'assurance",
"l'art",
"le pouvoir",
"le droit",
"la possibilité",
"l'avantage",
"la liberté",
)
verbs = (
"de rouler",
"d'avancer",
"d'évoluer",
"de changer",
"d'innover",
"de louer",
"d'atteindre vos buts",
"de concrétiser vos projets",
)
attributes = (
"de manière efficace",
"plus rapidement",
"plus facilement",
"plus simplement",
"en toute tranquilité",
"avant-tout",
"autrement",
"naturellement",
"à la pointe",
"sans soucis",
"à l'état pur",
"à sa source",
"de manière sûre",
"en toute sécurité",
)
company_suffixes: Tuple[str, ...] = (
"SA",
"S.A.",
"SARL",
"S.A.R.L.",
"S.A.S.",
"et Fils",
)
siren_format = "### ### ###"
# Data from:
# https://www.insee.fr/fr/information/2120875
# fmt: off
ape_codes_naf_2003 = [
"01.11Z", "01.12Z", "01.13Z", "01.14Z", "01.15Z", "01.16Z", "01.19Z",
"01.21Z", "01.22Z", "01.23Z", "01.24Z", "01.25Z", "01.26Z", "01.27Z",
"01.28Z", "01.29Z", "01.30Z", "01.41Z", "01.42Z", "01.43Z", "01.44Z",
"01.45Z", "01.46Z", "01.47Z", "01.49Z", "01.50Z", "01.61Z", "01.62Z",
"01.63Z", "01.64Z", "01.70Z", "02.10Z", "02.20Z", "02.30Z", "02.40Z",
"03.11Z", "03.12Z", "03.21Z", "03.22Z", "05.10Z", "05.20Z", "06.10Z",
"06.20Z", "07.10Z", "07.21Z", "07.29Z", "08.11Z", "08.12Z", "08.91Z",
"08.92Z", "08.93Z", "08.99Z", "09.10Z", "09.90Z", "10.11Z", "10.12Z",
"10.13A", "10.13B", "10.20Z", "10.31Z", "10.32Z", "10.39A", "10.39B",
"10.41A", "10.41B", "10.42Z", "10.51A", "10.51B", "10.51C", "10.51D",
"10.52Z", "10.61A", "10.61B", "10.62Z", "10.71A", "10.71B", "10.71C",
"10.71D", "10.72Z", "10.73Z", "10.81Z", "10.82Z", "10.83Z", "10.84Z",
"10.85Z", "10.86Z", "10.89Z", "10.91Z", "10.92Z", "11.01Z", "11.02A",
"11.02B", "11.03Z", "11.04Z", "11.05Z", "11.06Z", "11.07A", "11.07B",
"12.00Z", "13.10Z", "13.20Z", "13.30Z", "13.91Z", "13.92Z", "13.93Z",
"13.94Z", "13.95Z", "13.96Z", "13.99Z", "14.11Z", "14.12Z", "14.13Z",
"14.14Z", "14.19Z", "14.20Z", "14.31Z", "14.39Z", "15.11Z", "15.12Z",
"15.20Z", "16.10A", "16.10B", "16.21Z", "16.22Z", "16.23Z", "16.24Z",
"16.29Z", "17.11Z", "17.12Z", "17.21A", "17.21B", "17.21C", "17.22Z",
"17.23Z", "17.24Z", "17.29Z", "18.11Z", "18.12Z", "18.13Z", "18.14Z",
"18.20Z", "19.10Z", "19.20Z", "20.11Z", "20.12Z", "20.13A", "20.13B",
"20.14Z", "20.15Z", "20.16Z", "20.17Z", "20.20Z", "20.30Z", "20.41Z",
"20.42Z", "20.51Z", "20.52Z", "20.53Z", "20.59Z", "20.60Z", "21.10Z",
"21.20Z", "22.11Z", "22.19Z", "22.21Z", "22.22Z", "22.23Z", "22.29A",
"22.29B", "23.11Z", "23.12Z", "23.13Z", "23.14Z", "23.19Z", "23.20Z",
"23.31Z", "23.32Z", "23.41Z", "23.42Z", "23.43Z", "23.44Z", "23.49Z",
"23.51Z", "23.52Z", "23.61Z", "23.62Z", "23.63Z", "23.64Z", "23.65Z",
"23.69Z", "23.70Z", "23.91Z", "23.99Z", "24.10Z", "24.20Z", "24.31Z",
"24.32Z", "24.33Z", "24.34Z", "24.41Z", "24.42Z", "24.43Z", "24.44Z",
"24.45Z", "24.46Z", "24.51Z", "24.52Z", "24.53Z", "24.54Z", "25.11Z",
"25.12Z", "25.21Z", "25.29Z", "25.30Z", "25.40Z", "25.50A", "25.50B",
"25.61Z", "25.62A", "25.62B", "25.71Z", "25.72Z", "25.73A", "25.73B",
"25.91Z", "25.92Z", "25.93Z", "25.94Z", "25.99A", "25.99B", "26.11Z",
"26.12Z", "26.20Z", "26.30Z", "26.40Z", "26.51A", "26.51B", "26.52Z",
"26.60Z", "26.70Z", "26.80Z", "27.11Z", "27.12Z", "27.20Z", "27.31Z",
"27.32Z", "27.33Z", "27.40Z", "27.51Z", "27.52Z", "27.90Z", "28.11Z",
"28.12Z", "28.13Z", "28.14Z", "28.15Z", "28.21Z", "28.22Z", "28.23Z",
"28.24Z", "28.25Z", "28.29A", "28.29B", "28.30Z", "28.41Z", "28.49Z",
"28.91Z", "28.92Z", "28.93Z", "28.94Z", "28.95Z", "28.96Z", "28.99A",
"28.99B", "29.10Z", "29.20Z", "29.31Z", "29.32Z", "30.11Z", "30.12Z",
"30.20Z", "30.30Z", "30.40Z", "30.91Z", "30.92Z", "30.99Z", "31.01Z",
"31.02Z", "31.03Z", "31.09A", "31.09B", "32.11Z", "32.12Z", "32.13Z",
"32.20Z", "32.30Z", "32.40Z", "32.50A", "32.50B", "32.91Z", "32.99Z",
"33.11Z", "33.12Z", "33.13Z", "33.14Z", "33.15Z", "33.16Z", "33.17Z",
"33.19Z", "33.20A", "33.20B", "33.20C", "33.20D", "35.11Z", "35.12Z",
"35.13Z", "35.14Z", "35.21Z", "35.22Z", "35.23Z", "35.30Z", "36.00Z",
"37.00Z", "38.11Z", "38.12Z", "38.21Z", "38.22Z", "38.31Z", "38.32Z",
"39.00Z", "41.10A", "41.10B", "41.10C", "41.10D", "41.20A", "41.20B",
"42.11Z", "42.12Z", "42.13A", "42.13B", "42.21Z", "42.22Z", "42.91Z",
"42.99Z", "43.11Z", "43.12A", "43.12B", "43.13Z", "43.21A", "43.21B",
"43.22A", "43.22B", "43.29A", "43.29B", "43.31Z", "43.32A", "43.32B",
"43.32C", "43.33Z", "43.34Z", "43.39Z", "43.91A", "43.91B", "43.99A",
"43.99B", "43.99C", "43.99D", "43.99E", "45.11Z", "45.19Z", "45.20A",
"45.20B", "45.31Z", "45.32Z", "45.40Z", "46.11Z", "46.12A", "46.12B",
"46.13Z", "46.14Z", "46.15Z", "46.16Z", "46.17A", "46.17B", "46.18Z",
"46.19A", "46.19B", "46.21Z", "46.22Z", "46.23Z", "46.24Z", "46.31Z",
"46.32A", "46.32B", "46.32C", "46.33Z", "46.34Z", "46.35Z", "46.36Z",
"46.37Z", "46.38A", "46.38B", "46.39A", "46.39B", "46.41Z", "46.42Z",
"46.43Z", "46.44Z", "46.45Z", "46.46Z", "46.47Z", "46.48Z", "46.49Z",
"46.51Z", "46.52Z", "46.61Z", "46.62Z", "46.63Z", "46.64Z", "46.65Z",
"46.66Z", "46.69A", "46.69B", "46.69C", "46.71Z", "46.72Z", "46.73A",
"46.73B", "46.74A", "46.74B", "46.75Z", "46.76Z", "46.77Z", "46.90Z",
"47.11A", "47.11B", "47.11C", "47.11D", "47.11E", "47.11F", "47.19A",
"47.19B", "47.21Z", "47.22Z", "47.23Z", "47.24Z", "47.25Z", "47.26Z",
"47.29Z", "47.30Z", "47.41Z", "47.42Z", "47.43Z", "47.51Z", "47.52A",
"47.52B", "47.53Z", "47.54Z", "47.59A", "47.59B", "47.61Z", "47.62Z",
"47.63Z", "47.64Z", "47.65Z", "47.71Z", "47.72A", "47.72B", "47.73Z",
"47.74Z", "47.75Z", "47.76Z", "47.77Z", "47.78A", "47.78B", "47.78C",
"47.79Z", "47.81Z", "47.82Z", "47.89Z", "47.91A", "47.91B", "47.99A",
"47.99B", "49.10Z", "49.20Z", "49.31Z", "49.32Z", "49.39A", "49.39B",
"49.39C", "49.41A", "49.41B", "49.41C", "49.42Z", "49.50Z", "50.10Z",
"50.20Z", "50.30Z", "50.40Z", "51.10Z", "51.21Z", "51.22Z", "52.10A",
"52.10B", "52.21Z", "52.22Z", "52.23Z", "52.24A", "52.24B", "52.29A",
"52.29B", "53.10Z", "53.20Z", "55.10Z", "55.20Z", "55.30Z", "55.90Z",
"56.10A", "56.10B", "56.10C", "56.21Z", "56.29A", "56.29B", "56.30Z",
"58.11Z", "58.12Z", "58.13Z", "58.14Z", "58.19Z", "58.21Z", "58.29A",
"58.29B", "58.29C", "59.11A", "59.11B", "59.11C", "59.12Z", "59.13A",
"59.13B", "59.14Z", "59.20Z", "60.10Z", "60.20A", "60.20B", "61.10Z",
"61.20Z", "61.30Z", "61.90Z", "62.01Z", "62.02A", "62.02B", "62.03Z",
"62.09Z", "63.11Z", "63.12Z", "63.91Z", "63.99Z", "64.11Z", "64.19Z",
"64.20Z", "64.30Z", "64.91Z", "64.92Z", "64.99Z", "65.11Z", "65.12Z",
"65.20Z", "65.30Z", "66.11Z", "66.12Z", "66.19A", "66.19B", "66.21Z",
"66.22Z", "66.29Z", "66.30Z", "68.10Z", "68.20A", "68.20B", "68.31Z",
"68.32A", "68.32B", "69.10Z", "69.20Z", "70.10Z", "70.21Z", "70.22Z",
"71.11Z", "71.12A", "71.12B", "71.20A", "71.20B", "72.11Z", "72.19Z",
"72.20Z", "73.11Z", "73.12Z", "73.20Z", "74.10Z", "74.20Z", "74.30Z",
"74.90A", "74.90B", "75.00Z", "77.11A", "77.11B", "77.12Z", "77.21Z",
"77.22Z", "77.29Z", "77.31Z", "77.32Z", "77.33Z", "77.34Z", "77.35Z",
"77.39Z", "77.40Z", "78.10Z", "78.20Z", "78.30Z", "79.11Z", "79.12Z",
"79.90Z", "80.10Z", "80.20Z", "80.30Z", "81.10Z", "81.21Z", "81.22Z",
"81.29A", "81.29B", "81.30Z", "82.11Z", "82.19Z", "82.20Z", "82.30Z",
"82.91Z", "82.92Z", "82.99Z", "84.11Z", "84.12Z", "84.13Z", "84.21Z",
"84.22Z", "84.23Z", "84.24Z", "84.25Z", "84.30A", "84.30B", "84.30C",
"85.10Z", "85.20Z", "85.31Z", "85.32Z", "85.41Z", "85.42Z", "85.51Z",
"85.52Z", "85.53Z", "85.59A", "85.59B", "85.60Z", "86.10Z", "86.21Z",
"86.22A", "86.22B", "86.22C", "86.23Z", "86.90A", "86.90B", "86.90C",
"86.90D", "86.90E", "86.90F", "87.10A", "87.10B", "87.10C", "87.20A",
"87.20B", "87.30A", "87.30B", "87.90A", "87.90B", "88.10A", "88.10B",
"88.10C", "88.91A", "88.91B", "88.99A", "88.99B", "90.01Z", "90.02Z",
"90.03A", "90.03B", "90.04Z", "91.01Z", "91.02Z", "91.03Z", "91.04Z",
"92.00Z", "93.11Z", "93.12Z", "93.13Z", "93.19Z", "93.21Z", "93.29Z",
"94.11Z", "94.12Z", "94.20Z", "94.91Z", "94.92Z", "94.99Z", "95.11Z",
"95.12Z", "95.21Z", "95.22Z", "95.23Z", "95.24Z", "95.25Z", "95.29Z",
"96.01A", "96.01B", "96.02A", "96.02B", "96.03Z", "96.04Z", "96.09Z",
"97.00Z", "98.10Z", "98.20Z", "99.00Z",
]
# fmt: on
# Data from:
# https://www.insee.fr/fr/information/8181066
# fmt: off
ape_codes_naf_2025 = [
"01.11Y", "01.12Y", "01.13Y", "01.14Y", "01.15Y", "01.16Y", "01.19Y",
"01.21Y", "01.22Y", "01.23Y", "01.24Y", "01.25Y", "01.26Y", "01.27Y",
"01.28Y", "01.29Y", "01.30Y", "01.41Y", "01.42Y", "01.43Y", "01.44Y",
"01.45Y", "01.46Y", "01.47Y", "01.48G", "01.48H", "01.48J", "01.50Y",
"01.61Y", "01.62Y", "01.63Y", "01.70Y", "02.10Y", "02.20Y", "02.30Y",
"02.40Y", "03.11Y", "03.12Y", "03.21Y", "03.22Y", "03.30Y", "05.10Y",
"05.20Y", "06.10Y", "06.20Y", "07.10Y", "07.21Y", "07.29Y", "08.11Y",
"08.12Y", "08.91Y", "08.92Y", "08.93Y", "08.99Y", "09.10Y", "09.90Y",
"10.11Y", "10.12Y", "10.13G", "10.13H", "10.20Y", "10.31Y", "10.32Y",
"10.39G", "10.39H", "10.41Y", "10.42Y", "10.51G", "10.51H", "10.51J",
"10.52Y", "10.61G", "10.61H", "10.62Y", "10.71G", "10.71H", "10.71J",
"10.72Y", "10.73Y", "10.81Y", "10.82Y", "10.83Y", "10.84Y", "10.85Y",
"10.86Y", "10.89Y", "10.91Y", "10.92Y", "11.01Y", "11.02G", "11.02H",
"11.03Y", "11.04Y", "11.05Y", "11.06Y", "11.07G", "11.07H", "12.00Y",
"13.10Y", "13.20Y", "13.30Y", "13.91Y", "13.92Y", "13.93Y", "13.94Y",
"13.95Y", "13.96Y", "13.99Y", "14.10Y", "14.21Y", "14.22Y", "14.23Y",
"14.24Y", "14.29Y", "15.11Y", "15.12Y", "15.20Y", "16.11Y", "16.12Y",
"16.21Y", "16.22Y", "16.23Y", "16.24Y", "16.25Y", "16.26Y", "16.27Y",
"16.28Y", "17.11Y", "17.12Y", "17.21Y", "17.22Y", "17.23Y", "17.24Y",
"17.25Y", "18.11Y", "18.12Y", "18.13Y", "18.14Y", "18.20Y", "19.10Y",
"19.20Y", "20.11Y", "20.12Y", "20.13Y", "20.14Y", "20.15Y", "20.16Y",
"20.17Y", "20.20Y", "20.30Y", "20.41Y", "20.42Y", "20.51Y", "20.59Y",
"20.60Y", "21.10Y", "21.20Y", "22.11Y", "22.12Y", "22.21Y", "22.22Y",
"22.23Y", "22.24Y", "22.25Y", "22.26Y", "23.11Y", "23.12Y", "23.13Y",
"23.14Y", "23.15Y", "23.20Y", "23.31Y", "23.32Y", "23.41Y", "23.42Y",
"23.43Y", "23.44Y", "23.45Y", "23.51Y", "23.52Y", "23.61Y", "23.62Y",
"23.63Y", "23.64Y", "23.65Y", "23.66Y", "23.70Y", "23.91Y", "23.99Y",
"24.10Y", "24.20Y", "24.31Y", "24.32Y", "24.33Y", "24.34Y", "24.41Y",
"24.42Y", "24.43Y", "24.44Y", "24.45Y", "24.46Y", "24.51Y", "24.52Y",
"24.53Y", "24.54Y", "25.11Y", "25.12Y", "25.21Y", "25.22Y", "25.30Y",
"25.40Y", "25.51Y", "25.52Y", "25.53Y", "25.61Y", "25.62Y", "25.63Y",
"25.91Y", "25.92Y", "25.93Y", "25.94Y", "25.99Y", "26.11Y", "26.12Y",
"26.20Y", "26.30Y", "26.40Y", "26.51Y", "26.52Y", "26.60Y", "26.70Y",
"27.11Y", "27.12Y", "27.20Y", "27.31Y", "27.32Y", "27.33Y", "27.40Y",
"27.51Y", "27.52Y", "27.90Y", "28.11Y", "28.12Y", "28.13G", "28.13H",
"28.14Y", "28.15Y", "28.21Y", "28.22Y", "28.23Y", "28.24Y", "28.25Y",
"28.29Y", "28.30Y", "28.41Y", "28.42Y", "28.91Y", "28.92Y", "28.93Y",
"28.94Y", "28.95Y", "28.96Y", "28.97Y", "28.99Y", "29.10Y", "29.20Y",
"29.31Y", "29.32Y", "30.11Y", "30.12Y", "30.13Y", "30.20Y", "30.31Y",
"30.32Y", "30.40Y", "30.91Y", "30.92Y", "30.99Y", "31.00G", "31.00H",
"31.00J", "32.11Y", "32.12Y", "32.13Y", "32.20Y", "32.30Y", "32.40Y",
"32.50Y", "32.91Y", "32.99Y", "33.11Y", "33.12Y", "33.13Y", "33.14Y",
"33.15Y", "33.16Y", "33.17Y", "33.18G", "33.18H", "33.19Y", "33.20Y",
"35.11Y", "35.12Y", "35.13Y", "35.14Y", "35.15G", "35.15H", "35.16Y",
"35.21Y", "35.22Y", "35.23Y", "35.24Y", "35.30Y", "35.40Y", "36.00Y",
"37.00Y", "38.11Y", "38.12Y", "38.21Y", "38.22Y", "38.23Y", "38.31Y",
"38.32Y", "38.33Y", "39.00Y", "41.00G", "41.00H", "42.11Y", "42.12Y",
"42.13G", "42.13H", "42.21Y", "42.22Y", "42.91Y", "42.99Y", "43.11Y",
"43.12G", "43.12H", "43.13Y", "43.21G", "43.21H", "43.22G", "43.22H",
"43.23Y", "43.24Y", "43.31Y", "43.32G", "43.32H", "43.33Y", "43.34G",
"43.34H", "43.35Y", "43.41G", "43.41H", "43.41J", "43.42G", "43.42H",
"43.42J", "43.50Y", "43.60Y", "43.91Y", "43.99G", "43.99H", "46.11Y",
"46.12Y", "46.13Y", "46.14Y", "46.15Y", "46.16Y", "46.17G", "46.17H",
"46.18Y", "46.19G", "46.19H", "46.21Y", "46.22Y", "46.23Y", "46.24Y",
"46.31Y", "46.32G", "46.32H", "46.33Y", "46.34Y", "46.35Y", "46.36Y",
"46.37Y", "46.38Y", "46.39Y", "46.41Y", "46.42Y", "46.43G", "46.43H",
"46.44Y", "46.45Y", "46.46Y", "46.47Y", "46.48Y", "46.49Y", "46.50Y",
"46.61Y", "46.62Y", "46.63Y", "46.64G", "46.64H", "46.64J", "46.64K",
"46.71G", "46.71H", "46.72Y", "46.73Y", "46.81Y", "46.82Y", "46.83G",
"46.83H", "46.83J", "46.84G", "46.84H", "46.85Y", "46.86Y", "46.87Y",
"46.89Y", "46.90Y", "47.11G", "47.11H", "47.11J", "47.11K", "47.11L",
"47.12G", "47.12H", "47.21Y", "47.22Y", "47.23Y", "47.24Y", "47.25Y",
"47.26Y", "47.27G", "47.27H", "47.30Y", "47.40Y", "47.51Y", "47.52G",
"47.52H", "47.53Y", "47.54Y", "47.55G", "47.55H", "47.61Y", "47.62Y",
"47.63Y", "47.64Y", "47.69Y", "47.71Y", "47.72G", "47.72H", "47.73Y",
"47.74G", "47.74H", "47.75Y", "47.76Y", "47.77Y", "47.78G", "47.78H",
"47.79G", "47.79H", "47.81Y", "47.82Y", "47.83Y", "47.91Y", "47.92G",
"47.92H", "47.92J", "49.11Y", "49.12Y", "49.20Y", "49.31G", "49.31H",
"49.32Y", "49.33G", "49.33H", "49.34Y", "49.39Y", "49.41G", "49.41H",
"49.41J", "49.42Y", "49.50Y", "50.10Y", "50.20Y", "50.30Y", "50.40Y",
"51.10Y", "51.21Y", "51.22Y", "52.10G", "52.10H", "52.21Y", "52.22Y",
"52.23Y", "52.24G", "52.24H", "52.25Y", "52.26Y", "52.31Y", "52.32Y",
"53.10Y", "53.20G", "53.20H", "53.30Y", "55.10Y", "55.20Y", "55.30Y",
"55.40Y", "55.90Y", "56.11G", "56.11H", "56.11J", "56.12Y", "56.21Y",
"56.22Y", "56.30Y", "56.40Y", "58.11Y", "58.12Y", "58.13Y", "58.19Y",
"58.21Y", "58.29Y", "59.11G", "59.11H", "59.11J", "59.11K", "59.12Y",
"59.13Y", "59.14Y", "59.20Y", "60.10Y", "60.20G", "60.20H", "60.31Y",
"60.39Y", "61.10Y", "61.20Y", "61.90Y", "62.10Y", "62.20G", "62.20H",
"62.90Y", "63.10Y", "63.91Y", "63.92Y", "64.11Y", "64.19Y", "64.21Y",
"64.22Y", "64.31Y", "64.32Y", "64.91Y", "64.92Y", "64.99Y", "65.11Y",
"65.12Y", "65.20Y", "65.30Y", "66.11Y", "66.12Y", "66.19G", "66.19H",
"66.21Y", "66.22Y", "66.29Y", "66.30Y", "68.11Y", "68.12Y", "68.20G",
"68.20H", "68.31Y", "68.32G", "68.32H", "69.10Y", "69.20Y", "70.10Y",
"70.20Y", "71.11Y", "71.12Y", "71.20G", "71.20H", "72.10G", "72.10H",
"72.20Y", "73.11Y", "73.12Y", "73.20Y", "73.30Y", "74.11Y", "74.12Y",
"74.13Y", "74.14Y", "74.20Y", "74.30Y", "74.91Y", "74.99Y", "75.00Y",
"77.11Y", "77.12Y", "77.21Y", "77.22Y", "77.31Y", "77.32Y", "77.33Y",
"77.34Y", "77.35Y", "77.39Y", "77.40G", "77.40H", "77.51Y", "77.52Y",
"78.10Y", "78.20G", "78.20H", "79.11Y", "79.12Y", "79.90Y", "80.01Y",
"80.09Y", "81.10Y", "81.21Y", "81.22Y", "81.23G", "81.23H", "81.30Y",
"82.10Y", "82.20Y", "82.30Y", "82.40Y", "82.91Y", "82.92Y", "82.99Y",
"84.11Y", "84.12Y", "84.13Y", "84.21Y", "84.22Y", "84.23Y", "84.24Y",
"84.25Y", "84.30G", "84.30H", "84.30J", "85.10Y", "85.20Y", "85.31Y",
"85.32Y", "85.33Y", "85.40Y", "85.51Y", "85.52Y", "85.53Y", "85.59G",
"85.59H", "85.61Y", "85.69Y", "86.10Y", "86.21Y", "86.22Y", "86.23Y",
"86.91Y", "86.92Y", "86.93Y", "86.94G", "86.94H", "86.95Y", "86.96Y",
"86.97Y", "86.99Y", "87.10G", "87.10H", "87.10J", "87.20G", "87.20H",
"87.30G", "87.30H", "87.91Y", "87.99G", "87.99H", "88.10G", "88.10H",
"88.10J", "88.91G", "88.91H", "88.91J", "88.99G", "88.99H", "90.11Y",
"90.12Y", "90.13Y", "90.20Y", "90.31G", "90.31H", "90.39G", "90.39H",
"91.11Y", "91.12Y", "91.21Y", "91.22Y", "91.30Y", "91.41Y", "91.42Y",
"92.00Y", "93.11Y", "93.12Y", "93.13Y", "93.19Y", "93.21Y", "93.29Y",
"94.11Y", "94.12Y", "94.20Y", "94.91Y", "94.92Y", "94.99Y", "95.10Y",
"95.21Y", "95.22Y", "95.23Y", "95.24Y", "95.25Y", "95.29G", "95.29H",
"95.31G", "95.31H", "95.32Y", "95.40Y", "96.10G", "96.10H", "96.21G",
"96.21H", "96.22Y", "96.23Y", "96.30Y", "96.40Y", "96.91Y", "96.99G",
"96.99H", "97.00Y", "98.10Y", "98.20Y", "99.00Y",
]
# fmt: on
def catch_phrase_noun(self) -> str:
"""
Returns a random catch phrase noun.
"""
return self.random_element(self.nouns)
def catch_phrase_attribute(self) -> str:
"""
Returns a random catch phrase attribute.
"""
return self.random_element(self.attributes)
def catch_phrase_verb(self) -> str:
"""
Returns a random catch phrase verb.
"""
return self.random_element(self.verbs)
def catch_phrase(self) -> str:
"""
:example: 'integrate extensible convergence'
"""
catch_phrase = ""
while True:
pattern: str = self.random_element(self.catch_phrase_formats)
catch_phrase = self.generator.parse(pattern)
catch_phrase = catch_phrase[0].upper() + catch_phrase[1:]
if self._is_catch_phrase_valid(catch_phrase):
break
return catch_phrase
# An array containing string which should not appear twice in a catch phrase
words_which_should_not_appear_twice = ("sécurité", "simpl")
def _is_catch_phrase_valid(self, catch_phrase: str) -> bool:
"""
Validates a french catch phrase.
:param catch_phrase: The catch phrase to validate.
"""
for word in self.words_which_should_not_appear_twice:
# Fastest way to check if a piece of word does not appear twice.
begin_pos = catch_phrase.find(word)
end_pos = catch_phrase.find(word, begin_pos + 1)
if begin_pos != -1 and begin_pos != end_pos:
return False
return True
def siren(self) -> str:
"""
Generates a siren number (9 digits). Formatted as '### ### ###'.
"""
code = self.numerify("########")
luhn_checksum = str(calculate_luhn(float(code)))
return f"{code[:3]} {code[3:6]} {code[6:]}{luhn_checksum}"
def siret(self, max_sequential_digits: int = 2) -> str:
"""
Generates a siret number (14 digits).
It is in fact the result of the concatenation of a siren number (9 digits),
a sequential number (4 digits) and a control number (1 digit) concatenation.
If $max_sequential_digits is invalid, it is set to 2.
The siret number is formatted as '### ### ### #####'.
:param max_sequential_digits The maximum number of digits for the sequential number (> 0 && <= 4).
"""
if max_sequential_digits > 4 or max_sequential_digits <= 0:
max_sequential_digits = 2
sequential_number = str(self.random_number(max_sequential_digits)).zfill(4)
code = self.siren().replace(" ", "") + sequential_number
luhn_checksum = str(calculate_luhn(float(code)))
return f"{code[:3]} {code[3:6]} {code[6:9]} {code[9:]}{luhn_checksum}"
def company_vat(self, siren: str = "") -> str:
"""
Generate a valid TVA (French VAT) number.
It is the concatenation of "FR", siren checksum and siren number
:param siren: Force SIREN number
:sample:
:sample: siren="123 456 789"
"""
siren = siren or self.siren()
siren_int = int("".join(c for c in siren if c.isdigit()))
checksum = (12 + 3 * (siren_int % 97)) % 97
return f"FR {checksum:02} {siren}"
def ape_code(self, version: Optional[str] = "naf-2003") -> str:
"""
Generate an APE code (also known as NAF code).
It identify french company main branch of activity.
It provide numbers from nomenclature `version` `naf-2003` (default)
or `naf-2025`.
To have it generate a truly random (and possibly invalid number) set
`version` to `None`
:param version: Set to ``"naf-2003"`` to return a valid NAF 2003 APE code.
Set to ``"naf-2025"`` to return a valid NAF 2025 APE code.
Set to ``None`` to return a truly random and possibly invalid number
Defaults to ``"naf-2003"``
:sample:
:sample: version="naf-2003"
:sample: version="naf-2025"
:sample: version=None
"""
if version is None:
numbers = self.numerify("##.##")
letter = self.random_uppercase_letter()
return f"{numbers}{letter}"
if version == "naf-2003":
return self.random_element(self.ape_codes_naf_2003)
if version == "naf-2025":
return self.random_element(self.ape_codes_naf_2025)
raise ValueError("Unsupported NAF version. Set version=None to a truly random number.")
def rcs_number(self, city: str = "", letter: str = "", siren: str = "") -> str:
"""
Generate a RCS number for french companies.
It is a concatenation of "RCS", a city name, a letter A (if sole proprietorships, or B other companies)
and the company SIREN
:param city: Force city name
:param letter: Force letter
:param siren: Force SIREN
:sample:
:sample: siren="123 456 789"
:sample: city="Lyon" letter="B" siren="123 456 789"
"""
city = city or self.generator.city()
letter = letter or self.random_element("AB")
siren = siren or self.siren()
return f"RCS {city} {letter} {siren}"

View File

@@ -0,0 +1,15 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
company_suffixes = (
"d.o.o.",
"d.d.",
"j.d.o.o.",
)

View File

@@ -0,0 +1,15 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}} és {{last_name}} {{company_suffix}}",
"{{last_name}} és társa {{company_suffix}}",
)
company_suffixes = ("Kft.", "Kht.", "Zrt.", "Bt.", "Nyrt.", "Kkt.")
def company_suffix(self) -> str:
return self.random_element(self.company_suffixes)

View File

@@ -0,0 +1,283 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{first_name}} և {{first_name}} {{company_suffix}}",
"{{last_name}} {{company_suffix}}",
"{{last_name}} և {{last_name}} {{company_suffix}}"
"{{last_name}}, {{last_name}} և {{last_name}} {{company_suffix}}",
)
company_suffixes = ("ՍՊԸ", "ՀՁ", "ՓԲԸ", "ԲԲԸ", "Գրուպ", "Հոլդինգ")
catch_phrase_words = (
(
"առաջավոր",
"բարելավված",
"ավտոմատացված",
"հավասարակշռված",
"կենտրոնացված",
"համատեղելի",
"կարգավորելի",
"անհատականացված",
"ապակենտրոնացված",
"թվայնացված",
"տարածված",
"փոքրացված",
"ընդլայնված",
"էրգոնիկ",
"բացառիկ",
"երկարացված",
"լիովին կոնֆիգուրացվող",
"ֆունկցիոնալ հիմունքներով",
"հիմնական",
"հորիզոնական",
"իրականացված",
"նորարական",
"ինտեգրված",
"ինտուիտիվ",
"պարտադիր",
"բազմուղի",
"բազմաշերտ",
"ցանցային",
"բաց կոդով",
"օպերատիվ",
"օպտիմալացված",
"օրգանական",
"կազմակերպված",
"կայուն",
"կենսունակ",
"ավարտված",
"բևեռացված",
"կանխարգելող",
"ակտիվ",
"ծրագրավորելի",
"առաջադիմական",
"որակով",
"ռեակտիվ",
"իրականացված",
"նվազեցված",
"դիմացկուն",
"անխափան",
"ապահով",
"համատեղելի",
"հեշտացված",
"փոխարկելի",
"սինխրոնիզացված",
"ունիվերսալ",
"ճկուն",
"վիրտուալ",
),
(
"3-րդ սերնդի",
"4-րդ սերնդի",
"5-րդ սերնդի",
"6-րդ սերնդի",
"ասիմետրիկ",
"ասինխրոն",
"թողունակությունը վերահսկվող",
"երկկողմանի",
"հստակ մտածող",
"համաձայնեցված",
"բաղադրյալ",
"դիդակտիկ",
"ուղղորդիչ",
"դիսկրետ",
"բացահայտ",
"գլոբալ",
"բարձր մակարդակի",
"ամբողջական",
"միատարր",
"հիբրիդ",
"ազդեցիկ",
"ինտերակտիվ",
"միջանկյալ",
"առաջատար",
"տեղային",
"լոգիստիկ",
"սիստեմատիկ",
"մոդուլային",
"չեզոք",
"հաջորդ սերնդի",
"օբյեկտի վրա հիմնված",
"օպտիմալ",
"արմատական",
"փոխադարձ",
"ռեգիոնալ",
"երկրորդական",
"կայուն",
"ստատիկ",
"համակարգված",
"համակարգային",
"շոշափելի",
"երրորդական",
"անցումային",
"միատեսակ",
"լավ մոդուլացված",
"առանց թերությունների",
),
(
"կարողություն",
"մուտք",
"ադապտեր",
"ալգորիթմ",
"միություն",
"վերլուծիչ",
"ծրագրային ապահովում",
"մոտեցում",
"արխիվ",
"արհեստական բանականություն",
"վերաբերմունք",
"ընդունակություն",
"կարողություն",
"մարտահրավեր",
"գործակցություն",
"բարդություն",
"գաղափար",
"համախմբվածություն",
"տվյալների բազա",
"տվյալների պահեստ",
"սահմանում",
"իմացություն",
"կոդավորում",
"գաղտնագրում",
"կանխատեսում",
"հենքային ծրագիր",
"ֆունկցիա",
"գործառույթ",
"գրաֆիկական ինտերֆեյս",
"սարքային ապահովում",
"հիերարխիա",
"հանգույց",
"ենթակառուցվածք",
"նախաձեռնություն",
"ծրագրի ներդրում",
"հրահանգների հավաքածու",
"ինտերֆեյս",
"ինտրանետ",
"գիտելիքների բազա",
"տեղական ցանց",
"մատրիցա",
"մեթոդաբանություն",
"միջանկյալ շերտ",
"միգրացիա",
"մոդել",
"կարգավորիչ",
"մոնիտորինգ",
"բաց համակարգ",
"պարադիգմ",
"պորտալ",
"գնային կառուցվածք",
"արդյունավետություն",
"նախագիծ",
"ապահովված գիծ",
"ծրագրային ապահովում",
"լուծում",
"ստանդարտացում",
"ստրատեգիա",
"կառուցվածք",
"օպերատիվ խումբ",
"արտադրողականություն",
"ժամանակացույց",
"գործիք",
"օգտագործում",
"կայք",
"աշխատուժ",
),
)
bsWords = (
(
"իրականացնել",
"օգտագործել",
"ինտեգրել",
"ռացիոնալացնել",
"օպտիմալացնել",
"փոխակերպել",
"ընդգրկել",
"ակտիվացնել",
"կազմակերպել",
"նախագծել",
"խթանել",
"ձևափոխել",
"արտոնել",
"դրամայնացնել",
"հեշտացնել",
"վերցնել",
"աճեցնել",
"սինթեզել",
"առաքել",
"զբաղվել",
"առավելագույնի հասցնել",
"արագացնել",
"միջնորդել",
"պատկերացնել",
"վերափոխել",
"ընդլայնել",
"նախաձեռնել",
"հեղափոխականացնել",
"առաջացնել",
"օգտագործել",
"զարգացնել",
"արտադրանքի վերածել",
),
(
"ուղղահայաց",
"ակտիվ",
"դիմացկուն",
"հեղափոխական",
"առաջատար",
"նորարարական",
"ինտուիտիվ",
"ռազմավարական",
"էլեկտրոնային",
"գլոբալ",
"վիրտուալ",
"դինամիկ",
"գրավիչ",
"ինտերակտիվ",
"արդյունավետ",
"ընդարձակելի",
"պատրաստի",
"ինտեգրված",
"ազդեցիկ",
"անլար",
"թափանցիկ",
"հաջորդ սերնդի",
"ժամանակակից",
"հարմարեցված",
"համատարած",
"ազդեցիկ",
"ամբողջական",
"հարուստ",
"անվճար",
),
(
"պարադիգմներ",
"շուկաներ",
"ենթակառուցվածքներ",
"պլատֆորմներ",
"նախաձեռնություններ",
"ուղիներ",
"համայնքներ",
"լուծումներ",
"պորտալներ",
"տեխնոլոգիաներ",
"հարաբերություններ",
"կառուցվածքներ",
"ինտերֆեյսներ",
"շուկաներ",
"համակարգեր",
"մոդելներ",
"օգտագործողներ",
"սխեմաներ",
"ցանցեր",
"ծրագրեր",
"չափանիշներ",
"բիզնես",
"գործառույթներ",
"փորձառություններ",
"մեթոդաբանություններ",
),
)

View File

@@ -0,0 +1,32 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{company_prefix}} {{last_name}}",
"{{company_prefix}} {{last_name}} {{last_name}}",
"{{company_prefix}} {{last_name}} {{company_suffix}}",
"{{company_prefix}} {{last_name}} {{last_name}} {{company_suffix}}",
)
# From http://id.wikipedia.org/wiki/Jenis_badan_usaha
# via
# https://github.com/fzaninotto/faker/blob/master/src/Faker/Provider/id_ID/Company.php
company_prefixes = (
"PT",
"CV",
"UD",
"PD",
"Perum",
)
# From http://id.wikipedia.org/wiki/Jenis_badan_usaha
# via
# https://github.com/fzaninotto/faker/blob/master/src/Faker/Provider/id_ID/Company.php
company_suffixes = (
"(Persero) Tbk",
"Tbk",
)
def company_prefix(self) -> str:
return self.random_element(self.company_prefixes)

View File

@@ -0,0 +1,375 @@
from faker.utils.checksums import calculate_luhn
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}} {{company_suffix}}",
"{{last_name}}, {{last_name}} e {{last_name}} {{company_suffix}}",
)
catch_phrase_words = (
(
"Abilità",
"Access",
"Adattatore",
"Algoritmo",
"Alleanza",
"Analizzatore",
"Applicazione",
"Approccio",
"Architettura",
"Archivio",
"Intelligenza artificiale",
"Array",
"Attitudine",
"Benchmark",
"Capacità",
"Sfida",
"Circuito",
"Collaborazione",
"Complessità",
"Concetto",
"Conglomerato",
"Contingenza",
"Core",
"Database",
"Data-warehouse",
"Definizione",
"Emulazione",
"Codifica",
"Criptazione",
"Firmware",
"Flessibilità",
"Previsione",
"Frame",
"framework",
"Funzione",
"Funzionalità",
"Interfaccia grafica",
"Hardware",
"Help-desk",
"Gerarchia",
"Hub",
"Implementazione",
"Infrastruttura",
"Iniziativa",
"Installazione",
"Set di istruzioni",
"Interfaccia",
"Soluzione internet",
"Intranet",
"Conoscenza base",
"Matrici",
"Matrice",
"Metodologia",
"Middleware",
"Migrazione",
"Modello",
"Moderazione",
"Monitoraggio",
"Moratoria",
"Rete",
"Architettura aperta",
"Sistema aperto",
"Orchestrazione",
"Paradigma",
"Parallelismo",
"Policy",
"Portale",
"Struttura di prezzo",
"Prodotto",
"Produttività",
"Progetto",
"Proiezione",
"Protocollo",
"Servizio clienti",
"Software",
"Soluzione",
"Standardizzazione",
"Strategia",
"Struttura",
"Successo",
"Sovrastruttura",
"Supporto",
"Sinergia",
"Task-force",
"Finestra temporale",
"Strumenti",
"Utilizzazione",
"Sito web",
"Forza lavoro",
),
(
"adattiva",
"avanzata",
"migliorata",
"assimilata",
"automatizzata",
"bilanciata",
"centralizzata",
"compatibile",
"configurabile",
"cross-platform",
"decentralizzata",
"digitalizzata",
"distribuita",
"piccola",
"ergonomica",
"esclusiva",
"espansa",
"estesa",
"configurabile",
"fondamentale",
"orizzontale",
"implementata",
"innovativa",
"integrata",
"intuitiva",
"inversa",
"gestita",
"obbligatoria",
"monitorata",
"multi-canale",
"multi-laterale",
"open-source",
"operativa",
"ottimizzata",
"organica",
"persistente",
"polarizzata",
"proattiva",
"programmabile",
"progressiva",
"reattiva",
"riallineata",
"ricontestualizzata",
"ridotta",
"robusta",
"sicura",
"condivisibile",
"stand-alone",
"switchabile",
"sincronizzata",
"sinergica",
"totale",
"universale",
"user-friendly",
"versatile",
"virtuale",
"visionaria",
),
(
"24 ore",
"24/7",
"terza generazione",
"quarta generazione",
"quinta generazione",
"sesta generazione",
"asimmetrica",
"asincrona",
"background",
"bi-direzionale",
"biforcata",
"bottom-line",
"coerente",
"coesiva",
"composita",
"sensibile al contesto",
"basta sul contesto",
"basata sul contenuto",
"dedicata",
"didattica",
"direzionale",
"discreta",
"dinamica",
"eco-centrica",
"esecutiva",
"esplicita",
"full-range",
"globale",
"euristica",
"alto livello",
"olistica",
"omogenea",
"ibrida",
"impattante",
"incrementale",
"intangibile",
"interattiva",
"intermediaria",
"locale",
"logistica",
"massimizzata",
"metodica",
"mission-critical",
"mobile",
"modulare",
"motivazionale",
"multimedia",
"multi-tasking",
"nazionale",
"neutrale",
"nextgeneration",
"non-volatile",
"object-oriented",
"ottima",
"ottimizzante",
"radicale",
"real-time",
"reciproca",
"regionale",
"responsiva",
"scalabile",
"secondaria",
"stabile",
"statica",
"sistematica",
"sistemica",
"tangibile",
"terziaria",
"uniforme",
"valore aggiunto",
),
)
bsWords = (
(
"partnerships",
"comunità",
"ROI",
"soluzioni",
"e-services",
"nicchie",
"tecnologie",
"contenuti",
"supply-chains",
"convergenze",
"relazioni",
"architetture",
"interfacce",
"mercati",
"e-commerce",
"sistemi",
"modelli",
"schemi",
"reti",
"applicazioni",
"metriche",
"e-business",
"funzionalità",
"esperienze",
"webservices",
"metodologie",
),
(
"implementate",
"utilizzo",
"integrate",
"ottimali",
"evolutive",
"abilitate",
"reinventate",
"aggregate",
"migliorate",
"incentivate",
"monetizzate",
"sinergizzate",
"strategiche",
"deploy",
"marchi",
"accrescitive",
"target",
"sintetizzate",
"spedizioni",
"massimizzate",
"innovazione",
"guida",
"estensioni",
"generate",
"exploit",
"transizionali",
"matrici",
"ricontestualizzate",
),
(
"valore aggiunto",
"verticalizzate",
"proattive",
"forti",
"rivoluzionari",
"scalabili",
"innovativi",
"intuitivi",
"strategici",
"e-business",
"mission-critical",
"24/7",
"globali",
"B2B",
"B2C",
"granulari",
"virtuali",
"virali",
"dinamiche",
"magnetiche",
"web",
"interattive",
"sexy",
"back-end",
"real-time",
"efficienti",
"front-end",
"distributivi",
"estensibili",
"mondiali",
"open-source",
"cross-platform",
"sinergiche",
"out-of-the-box",
"enterprise",
"integrate",
"di impatto",
"wireless",
"trasparenti",
"next-generation",
"cutting-edge",
"visionari",
"plug-and-play",
"collaborative",
"olistiche",
"ricche",
),
)
company_suffixes = ("SPA", "e figli", "Group", "s.r.l.")
def _random_vat_office(self) -> int:
"""
Returns a random code identifying the VAT office needed to build a valid VAT with company_vat.
See https://it.wikipedia.org/wiki/Partita_IVA#Tabella_degli_Uffici_IVA
"""
val = self.random_int(1, 104)
# handle special cases
if val == 101:
return 120
elif val == 102:
return 121
elif val == 103:
return 888
elif val == 104:
return 999
# else: between 1 and 100 are all valid
return val
def company_vat(self) -> str:
"""
Returns Italian VAT identification number (Partita IVA).
"""
code = self.bothify("#######") + str(self._random_vat_office()).zfill(3)
luhn_checksum = str(calculate_luhn(int(code)))
return f"IT{code}{luhn_checksum}"

View File

@@ -0,0 +1,31 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{company_prefix}}{{last_name}}{{company_category}}",
"{{last_name}}{{company_category}}{{company_prefix}}",
)
company_prefixes = ("株式会社", "有限会社", "合同会社")
company_categories = (
"水産",
"農林",
"鉱業",
"建設",
"食品",
"印刷",
"電気",
"ガス",
"情報",
"通信",
"運輸",
"銀行",
"保険",
)
def company_prefix(self) -> str:
return self.random_element(self.company_prefixes)
def company_category(self) -> str:
return self.random_element(self.company_categories)

View File

@@ -0,0 +1,470 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
"""
Provider for company names for ko_KR locale
"""
formats = (
"{{company_suffix}} {{company_name_word}}{{brand_suffix}}",
"{{company_suffix}} {{company_name_word}}{{company_name_word}}{{brand_suffix}}",
"{{company_suffix}} {{company_name_word}}",
)
catch_phrase_words = (
(
"적응된",
"숙련된",
"자동화된",
"안정적인",
"비즈니스 중점적",
"중심이",
"복제된",
"효율적인",
"설정 가능한",
"크로스 그룹",
"크로스 플랫폼",
"사용자 중심의",
"조절 가능한",
"디지털화된",
"출판된",
"다양한",
"낮은",
"강화된",
"인체 공학적인",
"특별한",
"확장된",
"확대된",
"1:1",
"최전방",
"완벽히 설정된",
"함수 기반의",
"미래가 보장된",
"관리된",
"모니터링되는",
"멀티 채널",
"다중 주파수",
"멀티 레이어",
"조직화된",
"객체 기반의",
"공개 아키텍쳐",
"오픈소스",
"최적화된",
"선택적",
"유기농",
"수익에 중점을 둔",
"프로그래밍 가능한",
"진보적인",
"공개 키",
"품질 중심의",
"반동적인",
"재정렬",
"줄어든",
"리버스 엔지니어링된",
"올바른 사이즈의",
"강력한",
"원활한",
"안전한",
"자가 이용 가능한",
"공유 가능한",
"독보적인",
"무결점의",
"변경 가능한",
"동기화",
"융합력있는",
"융합된",
"단체 기반의",
"",
"트리플 버퍼",
"다용도",
"더 커진",
"업그레이드 가능한",
"더 작아진",
"유저 친화적",
"가상",
"비전 있는",
),
(
"24시간",
"24/7",
"3세대",
"4세대",
"5세대",
"6세대",
"작동",
"분석중인",
"비대칭",
"비동기",
"고도 기반",
"백그라운드",
"주파수 탐지 가능",
"요약",
"클라이언트 단",
"클라이언트-서버",
"밀착",
"결합된",
"합성물",
"상황에 맞는",
"문맥 기반",
"컨텐츠 기반",
"헌신적",
"교훈적",
"방향",
"분리된",
"다이나믹",
"환경 친화적",
"실행",
"취약점",
"스며든",
"수요 중심",
"장거리",
"글로벌",
"그리드 가능",
"휴리스틱",
"고단계",
"분리형",
"인간자원",
"하이브리드",
"선구적",
"로컬",
"물류",
"최대화",
"결정",
"휴대형",
"모듈형",
"멀티미디어",
"다중 상태",
"멀티 태스킹",
"국가적",
"범국가적",
"중립형",
"다음 세대",
"객체 지향적",
"필수",
"최적화된",
"근본적",
"실시간",
"역수",
"지역적",
"확장",
"보조",
"해답 기반",
"안정적",
"정적",
"가치추가",
"웹 사용 가능",
"잘 모듈화된",
"무관리",
"무해한",
"무관용",
),
(
"능력",
"접근",
"어댑터",
"알고리즘",
"연합",
"분석",
"어플리케이션",
"접근",
"아키텍쳐",
"아카이브",
"인공지능",
"배열",
"태도",
"벤치마크",
"예산 관리",
"환경",
"생산 능력",
"도전",
"회로",
"융합",
"컨셉",
"축적",
"우연성",
"코어",
"고객 만족",
"데이터베이스",
"정의",
"에뮬레이션",
"인코딩",
"암호화",
"엑스트라넷",
"펌웨어",
"유연성",
"예보",
"프레임",
"프레임워크",
"함수",
"그래픽 인터페이스",
"그룹웨어",
"GUI",
"하드웨어",
"안내 창구",
"계층",
"허브",
"미디어 정보",
"환경",
"설치과정",
"인터페이스",
"인트라넷",
"지식 기반",
"LAN",
"미들웨어",
"마이그레이션",
"모델",
"관리자",
"모니터링",
"공개 시스템",
"패러다임",
"정책",
"포탈",
"제품",
"프로젝트",
"프로토콜",
"서비스 창구",
"소프트웨어",
"솔루션",
"보안구역",
"전략",
"구조체",
"성공",
"지원",
"시너지",
"엔진",
"표준",
"시간화",
"공구",
"웹 사이트",
),
)
bsWords = (
(
"다용도의",
"통합된",
"간소화된",
"최적화된",
"진화된",
"변화된",
"포용적인",
"사용 가능한",
"웅장한",
"재평가된",
"재발명된",
"구조적인",
"강화된",
"장려하는",
"변화무쌍한",
"자율적인",
"선구적인",
"화폐화된",
"전략적인",
"발전하는",
"합성",
"배송",
"혼합된",
"최대화된",
"벤치마킹된",
"신속한",
"깨끗한",
"시각적인",
"창의적인",
"",
"폭발하는",
"확장된",
"엔지니어",
"혁명적인",
"제작된",
"취약점의",
"배열적인",
"문화적인",
),
(
"온라인 쇼핑",
"가치 상승",
"선구적",
"철벽",
"혁명적",
"가변",
"창조적",
"직감",
"전략적",
"전자 비즈니스",
"끈끈한",
"1:1",
"24/7",
"글로벌",
"B2B",
"B2C",
"고운",
"가상",
"바이러스성",
"다이나믹",
"24/365",
"고사양",
"킬러",
"자기장",
"최첨단",
"닷컴",
"섹시",
"백 엔드",
"실시간",
"효율적",
"프론트 엔드",
"무결점",
"확장",
"턴키",
"세계급",
"오픈 소스",
"크로스 플랫폼",
"크로스 미디어",
"엔터프라이즈",
"통합",
"강렬한",
"무선",
"투명",
"다음 세대",
"날카로운",
"창의적",
"반투명",
"유비쿼터스",
"플러그 앤 플레이",
"융합",
"강력한",
"강렬한",
"부자",
),
(
"시너지",
"패러다임",
"마케팅",
"파트너쉽",
"인프라",
"플랫폼",
"채널",
"커뮤니티",
"솔루션",
"전자 서비스",
"포탈",
"기술",
"컨텐츠",
"생산라인",
"관계",
"아키텍쳐",
"인터페이스",
"전자시장",
"전자화폐",
"시스템",
"주파수",
"모델",
"어플리케이션",
"사용자들",
"스키마",
"네트웍스",
"",
"매트릭스",
"전자 비즈니스",
"경험",
"웹서비스",
"방법론",
),
)
company_suffixes = ("(주)", "주식회사", "(유)", "유한회사")
company_name_words = (
"가람",
"가야",
"가온",
"겨레",
"고구려",
"고려",
"국민",
"글로벌",
"글로벌",
"나루",
"네오",
"넥스트",
"다올",
"라온",
"마루",
"마음",
"모두",
"미래",
"발해",
"백제",
"보람",
"브레인",
"비전",
"스타",
"시너지",
"신라",
"씨앤씨",
"아름",
"에코",
"우리",
"원더",
"월드",
"윈드",
"유니온",
"이노",
"인포",
"제나",
"조선",
"종합",
"중앙",
"첨단",
"코리아",
"코어",
"푸른",
"하나",
"한가람",
"한강",
"한빛",
)
brand_suffixes = (
"개발",
"개발공사",
"그룹",
"금고",
"기술",
"기획",
"네트워크",
"네트웍스",
"랩스",
"바이오",
"반도체",
"보안",
"뷰티",
"상사",
"센터",
"소프트",
"솔루션",
"시스템",
"시스템즈",
"신문",
"에너지",
"에이아이",
"엔지니어링",
"연구소",
"유통",
"은행",
"자동차",
"전자",
"정보통신",
"제조",
"출판",
"코스메틱",
"테크",
"플랫폼",
"항공",
)
def company_name_word(self) -> str:
return self.random_element(self.company_name_words)
def brand_suffix(self) -> str:
return self.random_element(self.brand_suffixes)

View File

@@ -0,0 +1,10 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}} {{company_suffix}}",
"{{last_name}}, {{last_name}} en {{last_name}} {{company_suffix}}",
)
company_suffixes = ("NV", "BV", "CV", "VOF", "CommV")

View File

@@ -0,0 +1,521 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} & {{last_name}}",
"{{company_prefix}} {{last_name}}",
"{{large_company}}",
)
company_prefixes = (
"Stichting",
"Koninklijke",
"Royal",
)
company_suffixes = (
"BV",
"NV",
"Groep",
)
# Source: https://www.mt.nl/management/reputatie/mt-500-2018-de-lijst/559930
large_companies = (
"Shell",
"Coolblue",
"ASML",
"Ahold",
"Tata Steel",
"KLM",
"Bol.com",
"BP Nederland",
"De Efteling",
"Eneco",
"De Persgroep",
"ING",
"Royal HaskoningDHV",
"Randstad",
"Google",
"Ikea",
"Rockwool",
"BAM",
"Achmea",
"Damen Shipyard",
"ABN Amro",
"Remeha Group",
"TenneT",
"Coca-Cola",
"Van Leeuwen Buizen",
"Wavin",
"Rabobank",
"AkzoNobel",
"Arcadis",
"AFAS",
"Cisco",
"DAF Trucks",
"DHL",
"Hanos",
"Boon Edam",
"BMW Nederland",
"The Greenery",
"Dutch Flower Group",
"Koninklijke Mosa",
"Yacht",
"Rituals",
"Microsoft",
"Esso",
"3W Vastgoed",
"Deloitte",
"Corio",
"Voortman Steel Group",
"Agrifirm",
"Makro Nederland",
"Nederlandse Publieke Omroep",
"De Alliantie",
"Heijmans",
"McDonalds",
"ANWB",
"Mediamarkt",
"Kruidvat" "Van Merksteijn Steel",
"Dura Vermeer",
"Alliander",
"Unilever",
"Enexis",
"Berenschot",
"Jumbo",
"Technische Unie",
"Havenbedrijf Rotterdam",
"Ballast Nedam",
"RTL Nederland",
"Talpa Media",
"Blauwhoed Vastgoed",
"DSM",
"Ymere",
"Witteveen+Bos",
"NS",
"Action",
"FloraHolland",
"Heineken",
"Nuon",
"EY",
"Dow Benelux",
"Bavaria",
"Schiphol",
"Holland Casino",
"Binck bank",
"BDO",
"HEMA",
"Alphabet Nederland",
"Croon Elektrotechniek",
"ASR Vastgoed ontwikkeling",
"PwC",
"Mammoet",
"KEMA",
"IBM",
"A.S. Watson",
"KPMG",
"VodafoneZiggo",
"YoungCapital",
"Triodos Bank",
"Aviko",
"AgruniekRijnvallei",
"Heerema",
"Accenture",
"Aegon",
"NXP",
"Breman Installatiegroep",
"Movares Groep",
"Q-Park",
"FleuraMetz",
"Sanoma",
"Bakker Logistiek",
"VDL Group",
"Bayer",
"Boskalis",
"Nutreco",
"Dell",
"Brunel",
"Exact",
"Manpower",
"Essent",
"Canon",
"ONVZ Zorgverzekeraar",
"Telegraaf Media Group",
"Nationale Nederlanden",
"Andus Group",
"Den Braven Group",
"ADP",
"ASR",
"ArboNed",
"Plieger",
"De Heus Diervoeders",
"USG People",
"Bidvest Deli XL",
"Apollo Vredestein",
"Tempo-Team",
"Trespa",
"Janssen Biologics",
"Starbucks",
"PostNL",
"Vanderlande",
"FrieslandCampina",
"Constellium",
"Huisman",
"Abbott",
"Koninklijke Boom Uitgevers",
"Bosch Rexroth",
"BASF",
"Audax",
"VolkerWessels",
"Hunkemöller",
"Athlon Car Lease",
"DSW Zorgverzekeraar",
"Mars",
"De Brauw Blackstone Westbroek",
"NDC Mediagroep",
"Bluewater",
"Stedin",
"Feenstra",
"Wuppermann Staal Nederland",
"Kramp",
"SABIC",
"Iv-Groep",
"Bejo Zaden",
"Wolters Kluwer",
"Nyrstar holding",
"Adecco",
"Tauw",
"Robeco",
"Eriks",
"Allianz Nederland Groep",
"Driessen",
"Burger King",
"Lekkerland",
"Van Lanschot",
"Brocacef",
"Bureau Veritas",
"Relx",
"Pathé Bioscopen",
"Bosal",
"Ardagh Group",
"Maandag",
"Inalfa",
"Atradius",
"Capgemini",
"Greenchoice",
"Q8 (Kuwait Petroleum Europe)",
"ASM International",
"Van der Valk",
"Delta Lloyd",
"GlaxoSmithKline",
"ABB",
"Fabory, a Grainger company",
"Veen Bosch & Keuning Uitgeversgroep",
"CZ",
"Plus",
"RET Rotterdam",
"Loyens & Loeff",
"Holland Trading",
"Archer Daniels Midland Nederland",
"Ten Brinke",
"NAM",
"DAS",
"Samsung Electronics Benelux",
"Koopman International",
"TUI",
"Lannoo Meulenhoff",
"AC Restaurants",
"Stage Entertainment",
"Acer",
"HDI Global SE",
"Detailresult",
"Nestle",
"GVB Amsterdam",
"Dekamarkt",
"Dirk",
"MSD",
"Arriva",
"Baker Tilly Berk",
"SBM Offshore",
"TomTom",
"Fujifilm",
"B&S",
"BCC",
"Gasunie",
"Oracle Nederland",
"Astellas Pharma",
"SKF",
"Woningstichting Eigen Haard",
"Rijk Zwaan",
"Chubb",
"Fugro",
"Total",
"Rochdale",
"ASVB",
"Atos",
"Acomo",
"KPN",
"Van Drie Group",
"Olympia uitzendbureau",
"Bacardi Nederland",
"JMW Horeca Uitzendbureau",
"Warner Bros/Eyeworks",
"Aalberts Industries",
"SNS Bank",
"Amtrada Holding",
"VGZ",
"Grolsch",
"Office Depot",
"De Rijke Group",
"Bovemij Verzekeringsgroep",
"Coop Nederland",
"Eaton Industries",
"ASN",
"Yara Sluiskil",
"HSF Logistics",
"Fokker",
"Deutsche Bank",
"Sweco",
"Univé Groep",
"Koninklijke Wagenborg",
"Strukton",
"Conclusion",
"Philips",
"In Person",
"Fluor",
"Vroegop-Windig",
"ArboUnie",
"Centraal Boekhuis",
"Siemens",
"Connexxion",
"Fujitsu",
"Consolid",
"AVR Afvalverwerking",
"Brabant Alucast",
"Centric",
"Havensteder",
"Novartis",
"Booking.com",
"Menzis",
"Frankort & Koning Groep",
"Jan de Rijk",
"Brand Loyalty Group",
"Ohra Verzekeringen",
"Terberg Group",
"Cloetta",
"Holland & Barrett",
"Enza Zaden",
"VION",
"Woonzorg Nederland",
"T-Mobile",
"Crucell",
"NautaDutilh",
"BNP Paribas",
"NIBC Bank",
"VastNed",
"CCV Holland",
"IHC Merwede",
"Neways",
"NSI N.V.",
"Deen",
"Accor",
"HTM",
"ITM Group",
"Ordina",
"Dümmen Orange",
"Optiver",
"Zara",
"L'Oreal Nederland B.V.",
"Vinci Energies",
"Suit Supply Topco",
"Sita",
"Vos Logistics",
"Altran",
"St. Clair",
"BESI",
"Fiat Chrysler Automobiles",
"UPS",
"Jacobs",
"Emté",
"TBI",
"De Bijenkorf",
"Aldi Nederland",
"Van Wijnen",
"Vitens",
"De Goudse Verzekeringen",
"SBS Broadcasting",
"Sandd",
"Omron",
"Sogeti",
"Alfa Accountants & Adviseurs",
"Harvey Nash",
"Stork",
"Glencore Grain",
"Meijburg & Co",
"Honeywell",
"Meyn",
"Ericsson Telecommunicatie",
"Hurks",
"Mitsubishi",
"GGN",
"CGI Nederland",
"Staples Nederland",
"Denkavit International",
"Ecorys",
"Rexel Nederland",
"A. Hakpark",
"DuPont Nederland",
"CBRE Group",
"Bolsius",
"Marel",
"Metro",
"Flynth Adviseurs en Accountants",
"Kropman Installatietechniek",
"Kuijpers",
"Medtronic",
"Cefetra",
"Simon Loos",
"Citadel Enterprises",
"Intergamma",
"Ceva Logistics",
"Beter Bed",
"Subway",
"Gamma",
"Karwei" "Varo Energy",
"APM Terminals",
"Center Parcs",
"Brenntag Nederland",
"NFI",
"Hoogvliet",
"Van Gansewinkel",
"Nedap",
"Blokker",
"Perfetti Van Melle",
"Vestia",
"Kuehne + Nagel Logistics",
"Rensa Group",
"NTS Group",
"Joh. Mourik & Co. Holding",
"Mercedes-Benz",
"DIT Personeel",
"Verkade",
"Hametha",
"Vopak",
"IFF",
"Pearle",
"Mainfreight",
"De Jong & Laan",
"DSV",
"P4People",
"Mazars",
"Cargill",
"Ten Brinke Groep",
"Alewijnse",
"Agio Cigars",
"Peter Appel Transport",
"Syngenta",
"Avery Dennison",
"Accon AVM",
"Vitol",
"Vermaat Groep",
"BMC",
"Alcatel-Lucent",
"Maxeda DIY",
"Equens",
"Van Gelder Groep",
"Emerson Electric Nederland",
"Bakkersland",
"Specsavers",
"E.On",
"Landal Greenparks",
"IMC Trading",
"Barentz Group",
"Epson",
"Raet",
"Van Oord",
"Thomas Cook Nederland",
"SDU uitgevers",
"Nedschroef",
"Linde Gas",
"Ewals Cargo Care",
"Theodoor Gilissen",
"TMF Group",
"Cornelis Vrolijk",
"Jan Linders Supermarkten",
"SIF group",
"BT Nederland",
"Kinepolis",
"Pink Elephant",
"General Motors Nederland",
"Carlson Wagonlit",
"Bruna",
"Docdata",
"Schenk Tanktransport",
"WPG",
"Peak-IT",
"Martinair",
"Reesink",
"Elopak Nederland",
"Fagron N.V.",
"OVG Groep",
"Ford Nederland",
"Multi Corporation",
"Simac",
"Primark",
"Tech Data Nederland",
"Vleesgroothandel Zandbergen",
"Raben Group",
"Farm Frites",
"Libéma",
"Caldic",
"Portaal",
"Syntus",
"Jacobs DE",
"Stena Line",
"The Phone House",
"Interfood Group",
"Thales",
"Teva Pharmaceuticals",
"RFS Holland",
"Aebi Schmidt Nederland",
"Rockwell Automation Nederland",
"Engie Services",
"Hendrix Genetics",
"Qbuzz",
"Unica",
"2SistersFoodGroup",
"Ziut",
"Munckhof Groep",
"Spar Holding",
"Samskip",
"Continental Bakeries",
"Sligro",
"Merck",
"Foot Locker Europe",
"Unit4",
"PepsiCo",
"Sulzer",
"Tebodin",
"Value8",
"Boels",
"DKG Groep",
"Bruynzeel Keukens",
"Janssen de Jong Groep",
"ProRail",
"Solid Professionals",
"Hermes Partners",
)
def large_company(self) -> str:
"""
:example: 'Bol.com'
"""
return self.random_element(self.large_companies)
def company_prefix(self) -> str:
"""
:example: 'Stichting'
"""
return self.random_element(self.company_prefixes)

View File

@@ -0,0 +1,22 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = [
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}} {{company_suffix}}",
"{{last_name}}, {{last_name}} og {{last_name}}",
"{{last_name}}-{{last_name}}",
]
company_suffixes = [
"Gruppen",
"AS",
"ASA",
"BA",
"RFH",
"og Sønner",
"& co.",
]

View File

@@ -0,0 +1,149 @@
from typing import List
from .. import Provider as CompanyProvider
def regon_checksum(digits: List[int]) -> int:
"""
Calculates and returns a control digit for given list of digits basing on REGON standard.
"""
weights_for_check_digit = [8, 9, 2, 3, 4, 5, 6, 7]
check_digit = 0
for i in range(0, 8):
check_digit += weights_for_check_digit[i] * digits[i]
check_digit %= 11
if check_digit == 10:
check_digit = 0
return check_digit
def local_regon_checksum(digits: List[int]) -> int:
"""
Calculates and returns a control digit for given list of digits basing on local REGON standard.
"""
weights_for_check_digit = [2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8]
check_digit = 0
for i in range(0, 13):
check_digit += weights_for_check_digit[i] * digits[i]
check_digit %= 11
if check_digit == 10:
check_digit = 0
return check_digit
def company_vat_checksum(digits: List[int]) -> int:
"""
Calculates and returns a control digit for given list of digits basing on NIP standard.
"""
weights_for_check_digit = [6, 5, 7, 2, 3, 4, 5, 6, 7]
check_digit = 0
for i in range(0, 9):
check_digit += weights_for_check_digit[i] * digits[i]
check_digit %= 11
return check_digit
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}}-{{last_name}} {{company_suffix}}",
"{{company_prefix}} {{last_name}}",
"{{company_prefix}} {{last_name}} {{company_suffix}}",
"{{company_prefix}} {{last_name}}-{{last_name}} {{company_suffix}}",
)
company_prefixes = (
"Grupa",
"Spółdzielnia",
"Stowarzyszenie",
"Fundacja",
"PPUH",
"FPUH",
"Gabinety",
)
company_suffixes = (
"Sp. z o.o.",
"S.A.",
"Sp. z o.o. Sp.k.",
"Sp.j.",
"s.c.",
"Sp.k.",
"i syn s.c.",
)
def company_prefix(self) -> str:
"""
:example 'Grupa'
"""
return self.random_element(self.company_prefixes)
def regon(self) -> str:
"""
Returns 9 character Polish National Business Registry Number,
Polish: Rejestr Gospodarki Narodowej - REGON.
https://pl.wikipedia.org/wiki/REGON
"""
voivodeship_number = self.random_int(0, 49) * 2 + 1
regon_digits = [int(voivodeship_number / 10), voivodeship_number % 10]
for _ in range(6):
regon_digits.append(self.random_digit())
regon_digits.append(regon_checksum(regon_digits))
return "".join(str(digit) for digit in regon_digits)
def local_regon(self) -> str:
"""
Returns 14 character Polish National Business Registry Number,
local entity number.
https://pl.wikipedia.org/wiki/REGON
"""
regon_digits = [int(digit) for digit in list(self.regon())]
for _ in range(4):
regon_digits.append(self.random_digit())
regon_digits.append(local_regon_checksum(regon_digits))
return "".join(str(digit) for digit in regon_digits)
def company_vat(self) -> str:
"""
Returns 10 character tax identification number,
Polish: Numer identyfikacji podatkowej.
https://pl.wikipedia.org/wiki/NIP
"""
vat_digits = []
for _ in range(3):
vat_digits.append(self.random_digit_not_null())
for _ in range(6):
vat_digits.append(self.random_digit())
check_digit = company_vat_checksum(vat_digits)
# in this case we must generate a tax number again, because check_digit
# cannot be 10
if check_digit == 10:
return self.company_vat()
vat_digits.append(check_digit)
return "".join(str(digit) for digit in vat_digits)

View File

@@ -0,0 +1,111 @@
from typing import List
from .. import Provider as CompanyProvider
def company_id_checksum(digits: List[int]) -> List[int]:
digits = list(digits)
weights = 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
dv = sum(w * d for w, d in zip(weights[1:], digits))
dv = (11 - dv) % 11
dv = 0 if dv >= 10 else dv
digits.append(dv)
dv2 = sum(w * d for w, d in zip(weights, digits))
dv2 = (11 - dv2) % 11
dv2 = 0 if dv2 >= 10 else dv2
digits.append(dv2)
return digits[-2:]
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
"{{last_name}}",
)
catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",)
nouns = (
"a segurança",
"o prazer",
"o conforto",
"a simplicidade",
"a certeza",
"a arte",
"o poder",
"o direito",
"a possibilidade",
"a vantagem",
"a liberdade",
)
verbs = (
"de conseguir",
"de avançar",
"de evoluir",
"de mudar",
"de inovar",
"de ganhar",
"de atingir seus objetivos",
"de concretizar seus projetos",
"de realizar seus sonhos",
)
attributes = (
"de maneira eficaz",
"mais rapidamente",
"mais facilmente",
"simplesmente",
"com toda a tranquilidade",
"antes de tudo",
"naturalmente",
"sem preocupação",
"em estado puro",
"com força total",
"direto da fonte",
"com confiança",
)
company_suffixes = ("S/A", "S.A.", "Ltda.", "- ME", "- EI", "e Filhos")
def catch_phrase_noun(self) -> str:
"""
Returns a random catch phrase noun.
"""
return self.random_element(self.nouns)
def catch_phrase_attribute(self) -> str:
"""
Returns a random catch phrase attribute.
"""
return self.random_element(self.attributes)
def catch_phrase_verb(self) -> str:
"""
Returns a random catch phrase verb.
"""
return self.random_element(self.verbs)
def catch_phrase(self) -> str:
"""
:example: 'a segurança de evoluir sem preocupação'
"""
pattern: str = self.random_element(self.catch_phrase_formats)
catch_phrase = self.generator.parse(pattern)
catch_phrase = catch_phrase[0].upper() + catch_phrase[1:]
return catch_phrase
def company_id(self) -> str:
digits: List[int] = list(self.random_sample(range(10), 8))
digits += [0, 0, 0, 1]
digits += company_id_checksum(digits)
return "".join(str(d) for d in digits)
def cnpj(self) -> str:
digits = self.company_id()
return f"{digits[:2]}.{digits[2:5]}.{digits[5:8]}/{digits[8:12]}-{digits[12:]}"

View File

@@ -0,0 +1,53 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
"{{last_name}}",
)
nouns = (
"a segurança",
"o prazer",
"o conforto",
"a simplicidade",
"a certeza",
"a arte",
"o poder",
"o direito",
"a possibilidade",
"a vantagem",
"a liberdade",
)
verbs = (
"de conseguir",
"de avançar",
"de evoluir",
"de mudar",
"de inovar",
"de ganhar",
"de atingir os seus objetivos",
"de concretizar seus projetos",
"de realizar seus sonhos",
)
attributes = (
"de maneira eficaz",
"mais rapidamente",
"mais facilmente",
"simplesmente",
"com toda a tranquilidade",
"antes de tudo",
"naturalmente",
"sem preocupação",
"em estado puro",
"com força total",
"direto da fonte",
"com confiança",
)
company_suffixes = ("S/A", "S.A.", "Lda.", "e Filhos")

View File

@@ -0,0 +1,34 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
company_prefixes = ("S.C.", "S.S.I.", "A.D.")
company_suffixes = (
"SRL",
"SA",
"SCA",
"SNC",
"SCS",
"AFJ",
"ASF",
"CON",
"CRL",
"INC",
"LOC",
"OC1",
"OC2",
"OC3",
"PFA",
"RA",
"SCS",
"SPI",
"URL",
)
def company_suffix(self) -> str:
return self.random_element(self.company_suffixes)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}}",
)
company_suffixes = (
"s.r.o.",
"v.o.s.",
"a.s.",
"k.s.",
)

View File

@@ -0,0 +1,13 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{first_name}} {{last_name}} s.p.",
)
company_suffixes = (
"d.o.o.",
"d.d.",
)

View File

@@ -0,0 +1,14 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}} & {{last_name}} {{company_suffix}}",
)
company_suffixes = (
"AB",
"HB",
)

View File

@@ -0,0 +1,126 @@
from collections import OrderedDict
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = OrderedDict(
(
("{{company_limited_prefix}}{{last_name}} {{company_limited_suffix}}", 0.2),
(
"{{company_limited_prefix}}{{last_name}}{{company_suffix}} {{company_limited_suffix}}",
0.2,
),
("{{company_limited_prefix}}{{last_name}} {{company_limited_suffix}}", 0.2),
("{{company_prefix}}{{last_name}}", 0.2),
("{{company_prefix}}{{last_name}}{{company_suffix}}", 0.2),
("{{last_name}}{{company_suffix}}", 0.1),
("{{nonprofit_prefix}}{{last_name}}", 0.1),
("{{last_name}}-{{last_name}}", 0.05),
("{{last_name}}และ{{last_name}}", 0.05),
("{{company_limited_prefix}}{{last_name}}", 0.01),
)
)
company_prefixes = OrderedDict(
(
("ห้างหุ้นส่วนจำกัด ", 0.3),
("หจก.", 0.2),
("บจก.", 0.1),
("บมจ.", 0.1),
("ห้างหุ้นส่วนสามัญ ", 0.1),
("หสน.", 0.01),
)
)
nonprofit_prefixes = OrderedDict(
(
("สมาคม", 0.4),
("มูลนิธิ", 0.3),
("ชมรม", 0.2),
("สหภาพแรงงาน", 0.1),
)
)
company_suffixes = (
"และเพื่อน",
"และบุตร",
"แอนด์ซันส์",
"กรุ๊ป",
"การช่าง",
"ก่อสร้าง",
"บริการ",
"เซอร์วิส",
"กลการ",
"ซัพพลาย",
"คอมมิวนิเคชั่น",
"พืชผล",
"เอเยนซี",
"เอ็นจิเนียริ่ง",
"คอนสตรัคชั่น",
"วิศวกรรม",
"วิศวการ",
"คอมพิวเตอร์",
"พานิช",
"ขนส่ง",
"เฟอนิชชิ่ง",
"เฟอร์นิเจอร์",
"อุตสาหกรรม",
"เอนเตอรไพรส์",
"จิวเวลรี่",
"อะไหล่ยนต์",
"ภาพยนตร์",
"ยานยนต์",
"เทรดดิ้ง",
"การค้า",
"แลบ",
"เคมิคอล",
"อิมปอร์ตเอ็กซปอร์ต",
"อินเตอร์เนชั่นแนล",
"บรรจุภัณฑ์",
"แพคกิ้ง",
"มอเตอร์",
"โอสถ",
"การบัญชี",
"สโตร์",
)
company_limited_prefixes = OrderedDict(
(
("บริษัท ", 0.95),
("ธนาคาร", 0.03),
("บริษัทหลักทรัพย์ ", 0.005),
("กองทุนรวม", 0.005),
)
)
company_limited_suffixes = OrderedDict(
(
("จำกัด", 0.85),
("จำกัด (มหาชน)", 0.15),
)
)
def company_prefix(self) -> str:
"""
:example: 'ห้างหุ้นส่วนจำกัด'
"""
return self.random_element(self.company_prefixes)
def company_limited_prefix(self) -> str:
"""
:example: 'บริษัท'
"""
return self.random_element(self.company_limited_prefixes)
def company_limited_suffix(self) -> str:
"""
:example: 'จำกัด'
"""
return self.random_element(self.company_limited_suffixes)
def nonprofit_prefix(self) -> str:
"""
:example: 'มูลนิธิ'
"""
return self.random_element(self.nonprofit_prefixes)

View File

@@ -0,0 +1,7 @@
from ..fil_PH import Provider as FilPhProvider
class Provider(FilPhProvider):
"""No difference from Company Provider for fil_PH locale"""
pass

View File

@@ -0,0 +1,123 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{large_company}}",
)
# Source: https://www.capital.com.tr/listeler/capital-500
large_companies = (
"Tüpraş",
"Türk Hava Yolları",
"Petrol Ofisi",
"Opet Petrolcülük",
"Ford Otosan",
"BİM Birleşik Mağazalar",
"Arçelik",
"Shell&Turcas Petrol",
"Ereğli Demir Çelik",
"Türk Telekom",
"Toyota Otomotiv",
"Tofaş Oto Fabrika",
"Turkcell",
"Oyak Renault",
"Migros",
"RC Rönesans İnşaat",
"Doğuş Otomotiv",
"Anadolu Efes Biracılık",
"LC Waikiki Mağazacılık",
"Enerjisa Enerji",
"Vodafone",
"Vestel Elektronik",
"Mercedes-Benz Türk",
"Şişecam",
"İÇDAŞ Çelik Enerji",
"JTI Tütün Ürünleri Pazarlama",
"Selçuk Ecza",
"İskenderun Demir Çelik",
"Enka İnşaat",
"Kibar Dış Ticaret",
"Hyundai Assan Otomotiv",
"Şok Marketler",
"İstanbul Altın Rafinerisi",
"Coca-Cola İçecek",
"Aygaz",
"İçtaş İnşaat",
"BSH Ev Aletleri",
"Petkim",
"Otokoç",
"THY Opet",
"İGDAŞ İstanbul Gaz Dağıtım",
"Limak İnşaat",
"Hayat Kimya",
"Limak Yatırım",
"Mapa İnşaat",
"Aytemiz Akaryakıt Dağıtım",
"Aselsan",
"Pegasus Hava Taşımacılığı",
"TUSAŞ-Türk Havacılık ve Uzay",
"GAP İnşaat",
"Tosçelik Profil ve Saç",
"Unilever",
"Tekfen İnşaat",
"Ülker Bisküvi",
"Çalık Enerji",
"Indeks Bilgisayar",
"Güneş Ekspres Havacılık",
"TAV Havalimanları",
"CarrefourSA",
"Borçelik Çelik Sanayi",
"Sarkuysan",
"Trakya Cam",
"Türk Traktör",
"Mey İçki",
"Kardemir",
"İpragaz",
"Zorlu Enerji",
"Vestel Beyaz Eşya",
"Aksa Enerji Üretim",
"TGS Dış Ticaret",
"TP Petrol Dağıtım",
"Gübre Fabrikaları",
"Gediz Elektrik Perakende Satış",
"BASF Türkiye",
"Er-Bakır Elektrolitik Bakır",
"Teknosa İç ve Dış Ticaret",
"Kroman Çelik",
"Eren Enerji",
"Tiryaki Agro Gıda",
"Acıbadem Sağlık Hizmetleri",
"Yücel Boru ve Profil",
"Baştuğ Metalurji",
"Eti Gıda",
"Philsa Philip Morris Sabancı Sigara",
"Netlog Lojistik Hizmetleri",
"İzmir Demir Çelik",
"Assan Alüminyum",
"Tepe İnşaat",
"Honda Türkiye",
"Koton",
"Bizim Toptan Satış Mağazaları",
"Aksa Akrilik",
"Aksa Doğalgaz",
"Borusan Otomotiv",
"Kastamonu Entegre",
"Sepaş Enerji Sakarya Elektrik",
"TAV Tepe Akfen",
"Konya Şeker Fabrikası",
)
company_suffixes = (
"A.Ş.",
"Ltd.",
"Tic.",
"San.",
"Şti.",
)
def large_company(self) -> str:
"""
:example: 'Peak Games'
"""
return self.random_element(self.large_companies)

View File

@@ -0,0 +1,24 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
# Source: https://vi.wikipedia.org/wiki/Danh_s%C3%A1ch_c%C3%B4ng_ty_Vi%E1%BB%87t_Nam
formats = (
"{{last_name}} {{company_suffix}}",
"{{last_name}} {{last_name}} {{company_suffix}}",
"{{last_name}} và {{last_name}} {{company_suffix}}",
"{{last_name}} và đối tác {{company_suffix}}",
)
company_suffixes = (
"Công ty TNHH",
"Công ty Cổ phần",
"Doanh nghiệp tư nhân",
"Công ty TNHH MTV",
"Công ty Hợp danh",
"Công ty Trách nhiệm hữu hạn",
"Tập Đoàn",
)
def company_suffix(self) -> str:
return self.random_element(self.company_suffixes)

View File

@@ -0,0 +1,95 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = ["{{company_prefix}}{{company_suffix}}"]
company_prefixes = [
"超艺",
"和泰",
"九方",
"鑫博腾飞",
"戴硕电子",
"济南亿次元",
"海创",
"创联世纪",
"凌云",
"泰麒麟",
"彩虹",
"兰金电子",
"晖来计算机",
"天益",
"恒聪百汇",
"菊风公司",
"惠派国际公司",
"创汇",
"思优",
"时空盒数字",
"易动力",
"飞海科技",
"华泰通安",
"盟新",
"商软冠联",
"图龙信息",
"易动力",
"华远软件",
"创亿",
"时刻",
"开发区世创",
"明腾",
"良诺",
"天开",
"毕博诚",
"快讯",
"凌颖信息",
"黄石金承",
"恩悌",
"雨林木风计算机",
"双敏电子",
"维旺明",
"网新恒天",
"数字100",
"飞利信",
"立信电子",
"联通时科",
"中建创业",
"新格林耐特",
"新宇龙信息",
"浙大万朋",
"MBP软件",
"昂歌信息",
"万迅电脑",
"方正科技",
"联软",
"七喜",
"南康",
"银嘉",
"巨奥",
"佳禾",
"国讯",
"信诚致远",
"浦华众城",
"迪摩",
"太极",
"群英",
"合联电子",
"同兴万点",
"襄樊地球村",
"精芯",
"艾提科信",
"昊嘉",
"鸿睿思博",
"四通",
"富罳",
"商软冠联",
"诺依曼软件",
"东方峻景",
"华成育卓",
"趋势",
"维涛",
"通际名联",
]
company_suffixes = [n + "有限公司" for n in ["科技", "网络", "信息", "传媒"]]
def company_prefix(self) -> str:
return self.random_element(self.company_prefixes)

View File

@@ -0,0 +1,113 @@
from .. import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = ("{{company_prefix}}{{company_suffix}}",)
company_prefixes = (
"品王餐飲",
"一統企業",
"品誠",
"台灣電信",
"Goagle",
"一統星巴克",
"台日積體電路",
"榮長航空",
"台灣印無品良",
"華中航空",
"台灣人銀行",
"國中鋼鐵",
"海鴻精密",
"台灣鐵高",
"家宜家居KIEA",
"天上雜誌",
"台灣力電",
"碩華電腦",
"雄豹旅遊",
"光新三越百貨",
"台灣軟微",
"鐵台",
"一統超商",
"碁宏",
"創群光電(奇原美電子)",
"台灣酒菸",
"美奧廣告",
"AYHOO!摩奇",
"台灣台油",
"達宏國際電子",
"華晶國際酒店",
"秀威影城",
"王鼎餐飲集團",
"台灣五星電子",
"遊戲葡萄數位科技",
"橋子王生技",
"大八電視",
"台灣業糖",
"都亞緻麗",
"台灣來自水",
"麥當當",
"風微廣場",
"見遠雜誌",
"石金堂",
"邦城文化事業",
"華中郵政",
"達友光電",
"中台信託商業銀行",
"台北登來喜大飯店",
"全味食品工業",
"遠西百貨",
"旗花(台灣銀)行",
"冠智科技",
"丹味企業",
"發聯科技",
"台灣雅萊Y'ORÉAL",
"古太可口可樂",
"榮長海運",
"達廣電腦",
"華福大飯店",
"立三電視",
"星燦國際旅行社",
"衣優庫Nuiqlo",
"德汎",
"台北眾大捷運",
"共公電視",
"明陽海運",
"雄遠建設事業",
"台灣迪奧汽車",
"台灣地土銀行",
"天中電視",
"月日光半導體",
"塑台石化",
"樂可旅遊集團",
"信永藥品",
"輝燁企業",
"興復航空運輸",
"豐兆國際商業銀行",
"平太洋崇光百貨",
"神漢名店百貨",
"台灣士賓",
"賓國大飯店",
"業商週刊",
"台灣BIM",
"湖劍山世界",
"合作庫金商業銀行",
"台北邦富商業銀行",
"愛味之",
"邦富人壽保險",
"律理法律",
"心安食品服務(斯摩漢堡)",
"松黑",
"台灣生資堂",
"鮮爭",
"達台電子",
"聯燁鋼鐵",
"華聯電子",
"瑞輝大藥廠",
"隆豐大飯店(北台君悅)",
"資華粧業(生資堂)",
)
company_suffixes = ("", "有限公司", "股份有限公司", "資訊有限公司")
def company_prefix(self) -> str:
return self.random_element(self.company_prefixes)