rupython 1.2.12__tar.gz → 1.2.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. rupython-1.2.14/LICENSE +55 -0
  2. {rupython-1.2.12 → rupython-1.2.14}/PKG-INFO +6 -3
  3. {rupython-1.2.12 → rupython-1.2.14}/README.md +2 -2
  4. {rupython-1.2.12 → rupython-1.2.14}/rupython/__/320/227/320/260/320/263/320/276/320/273/320/276/320/262/320/276/321/207/320/275/321/213/320/271_/320/272/320/276/320/264__.py +50 -4
  5. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/220/321/201/320/270/320/275/321/205/321/200.py +206 -0
  6. {rupython-1.2.12 → rupython-1.2.14}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/221/320/224.py +56 -56
  7. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/224/320/260/321/202/320/260/320/222/321/200/320/265/320/274/321/217.py +566 -0
  8. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/320/276/320/273/320/273/320/265/320/272/321/206/320/270/320/270.py +559 -0
  9. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/321/203/321/207/320/260.py +87 -0
  10. {rupython-1.2.12 → rupython-1.2.14}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/234/320/260/321/202/320/265/320/274.py +4 -4
  11. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/236/321/207/320/265/321/200/320/265/320/264/321/214.py +177 -0
  12. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/237/320/276/321/202/320/276/320/272/320/270.py +273 -0
  13. {rupython-1.2.12 → rupython-1.2.14}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/240/320/265/320/263/320/222/321/213/321/200.py +42 -42
  14. rupython-1.2.14/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/244/320/260/320/271/320/273/321/213.py +123 -0
  15. {rupython-1.2.12 → rupython-1.2.14}/rupython.egg-info/PKG-INFO +6 -3
  16. {rupython-1.2.12 → rupython-1.2.14}/rupython.egg-info/SOURCES.txt +2 -1
  17. {rupython-1.2.12 → rupython-1.2.14}/setup.py +6 -2
  18. rupython-1.2.12/LICENSE +0 -27
  19. rupython-1.2.12/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/220/321/201/320/270/320/275/321/205/321/200.py +0 -206
  20. rupython-1.2.12/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/224/320/260/321/202/320/260/320/222/321/200/320/265/320/274/321/217.py +0 -566
  21. rupython-1.2.12/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/320/276/320/273/320/273/320/265/320/272/321/206/320/270/320/270.py +0 -559
  22. rupython-1.2.12/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/321/203/321/207/320/260.py +0 -87
  23. rupython-1.2.12/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/236/321/207/320/265/321/200/320/265/320/264/321/214.py +0 -177
  24. rupython-1.2.12/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/237/320/276/321/202/320/276/320/272/320/270.py +0 -273
  25. {rupython-1.2.12 → rupython-1.2.14}/rupython/__main__.py +0 -0
  26. {rupython-1.2.12 → rupython-1.2.14}/rupython/__/320/236/320/261/321/211/320/270/320/265_/321/204/321/203/320/275/320/272/321/206/320/270/320/270__.py" +0 -0
  27. {rupython-1.2.12 → rupython-1.2.14}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/241/320/273/321/203/321/207.py" +0 -0
  28. {rupython-1.2.12 → rupython-1.2.14}/rupython//320/237/321/200/320/265/320/276/320/261/321/200/320/260/320/267/320/276/320/262/320/260/321/202/320/265/320/273/321/214.py" +0 -0
  29. {rupython-1.2.12 → rupython-1.2.14}/rupython.egg-info/dependency_links.txt +0 -0
  30. {rupython-1.2.12 → rupython-1.2.14}/rupython.egg-info/top_level.txt +0 -0
  31. {rupython-1.2.12 → rupython-1.2.14}/setup.cfg +0 -0
@@ -0,0 +1,55 @@
1
+ Настоящая лицензия основана на ценностях и правовых принципах русской культурной традиции и предназначена для обеспечения распространения данного продукта — программного обеспечения, произведения или иного объекта интеллектуальной деятельности (далее — «Продукт») — на условиях свободного использования в рамках этой традиции.
2
+
3
+ Настоящей лицензией заявляется, что Продукт создан представителями Русской нации в рамках расширения её культурного и духовного наследия и предназначен для использования теми, кто разделяет идентичность и ценности Русской нации — исторического и духовного единства великорусской, малорусской и белорусской народностей. Авторы Продукта добровольно передают Продукт в общественное достояние Русской нации, в рамках которого он остаётся свободным для использования всеми представителями Русской нации и людьми, разделяющими ценности и идеалы Русской нации, без ограничений.
4
+
5
+ Настоящий Продукт распространяется на условиях свободного использования: любой пользователь (далее — «Пользователь»), принадлежа к Русской нации или разделяя её ценности и идеалы, вправе использовать Продукт любым способом, включая, но не ограничиваясь: копированием; распространением; модификацией; созданием производных работ; использованием в личных, коммерческих или иных целях. Для использования Продукта не требуется никаких разрешений или уведомлений; пользователь вправе создавать производные работы на основе Продукта без ограничений.
6
+
7
+ Настоящая лицензия не накладывает юридических ограничений на использование Продукта, за исключением соблюдения применимого законодательства в юрисдикции Пользователя. Продукт предоставляется «как есть», без каких-либо гарантий, явных или подразумеваемых, включая, но не ограничиваясь, гарантиями пригодности для конкретной цели, коммерческой ценности или отсутствия дефектов. Ни при каких обстоятельствах авторы не несут ответственность за любой ущерб, прямой или косвенный, возникший в результате использования или невозможности использования Продукта. Пользователь несёт полную ответственность за использование Продукта, включая соблюдение применимых законов, уважение прав третьих лиц, а также прав и интересов Русской нации.
8
+
9
+ =======
10
+
11
+ Ця ліцензія заснована на цінностях і правових засадах руської культурної традиції й призначена для забезпечення поширення цього продукту — програмного забезпечення, твору чи іншого об’єкта інтелектуальної діяльності (далі — «Продукт») — на умовах вільного користування в межах зазначеної традиції.
12
+
13
+ Цією ліцензією стверджується, що Продукт створений представниками Руської нації в межах розбудови її духовної та культурної спадщини, і призначений для користування тими, хто поділяє ідентичність та цінності Руської нації — історичну й духовну єдність великоруської, малоруської та білоруської народностей. Автори Продукту добровільно передають його у громадське надбання Руської нації, в межах якого він залишається вільним для користування усіма представниками Руської нації та особами, що поділяють її цінності та ідеали, без будь-яких обмежень.
14
+
15
+ Цей Продукт поширюється на засадах вільного користування: кожен користувач (далі — «Користувач»), який належить до Руської нації або поділяє її цінності та ідеали, має право використовувати Продукт у будь-який спосіб, включно з, але не обмежуючись: копіюванням, поширенням, модифікацією, створенням похідних творів, використанням у приватних, комерційних або інших цілях. Для користування Продуктом не вимагається жодних дозволів чи повідомлень; Користувач має право створювати похідні твори на основі Продукту без обмежень.
16
+
17
+ Ця ліцензія не накладає правових обмежень на використання Продукту, окрім дотримання чинного законодавства у відповідній юрисдикції. Продукт надається «як є», без жодних гарантій, явних або неявних, включаючи, але не обмежуючись, гарантіями придатності для певної мети, товарної цінності чи відсутності вад. За жодних обставин автори не несуть відповідальності за будь-які збитки, прямі чи опосередковані, що виникли внаслідок використання або неможливості використання Продукту. Користувач несе повну відповідальність за використання Продукту, включаючи дотримання чинного законодавства, повагу до прав третіх осіб, а також прав і інтересів Руської нації.
18
+
19
+ =======
20
+
21
+ Сапраўдная ліцэнзія грунтуецца на каштоўнасцях і прававых прынцыпах рускай культурнай традыцыі і прызначана для забеспячэння распаўсюджвання гэтага прадукта — праграмнага забеспячэння, твора ці іншага аб'екта інтэлектуальнай дзейнасці (далей — «Прадукт») — на ўмовах свабоднага выкарыстання ў рамках гэтай традыцыі.
22
+
23
+ Гэтай ліцэнзіяй заяўляецца, што Прадукт створаны прадстаўнікамі Рускай нацыі ў рамках пашырэння яе культурнай і духоўнай спадчыны і прызначаны для выкарыстання тымі, хто падзяляе ідэнтычнасць і каштоўнасці Рускай нацыі — гістарычнага і духоўнага адзінства вялікарускай, маларускай і беларускай народнасцей. Аўтары Прадукта добраахвотна перадаюць Прадукт у грамадскае надбанне Рускай нацыі, у рамках якога ён застаецца свабодным для выкарыстання ўсімі прадстаўнікамі Рускай нацыі і людзьмі, якія падзяляюць каштоўнасці і ідэалы Рускай нацыі, без абмежаванняў.
24
+
25
+ Гэты Прадукт распаўсюджваецца на ўмовах свабоднага выкарыстання: любы карыстальнік (далей — «Карыстальнік»), які належыць да Рускай нацыі або падзяляе яе каштоўнасці і ідэалы, мае права выкарыстоўваць Прадукт любым спосабам, уключаючы, але не абмяжоўваючыся: капіраваннем; распаўсюджваннем; мадыфікацыяй; стварэннем вытворных прац; выкарыстаннем у асабістых, камерцыйных ці іншых мэтах. Для выкарыстання Прадукта не патрабуецца ніякіх дазволаў або паведамленняў; карыстальнік мае права ствараць вытворныя працы на аснове Прадукта без абмежаванняў.
26
+
27
+ Гэтая ліцэнзія не накладвае юрыдычных абмежаванняў на выкарыстанне Прадукта, за выключэннем выканання прыдатнага заканадаўства ў юрысдыкцыі Карыстальніка. Прадукт прадастаўляецца «як ёсць», без якіх-небудзь гарантый, яўных або невыяўленых, уключаючы, але не абмяжоўваючыся, гарантыямі яго прыдатнасці для пэўнай мэты, камерцыйнай каштоўнасці або адсутнасці дэфектаў. Ні пры якіх абставінах аўтары не нясуць адказнасці за любы ўрон, прамы ці ўскосны, які ўзнік у выніку выкарыстання або немагчымасці выкарыстання Прадукта. Карыстальнік нясе поўную адказнасць за выкарыстанне Прадукта, уключаючы выкананне прыдатных законаў, павагу правоў трэціх асоб, а таксама правоў і інтарэсаў Рускай нацыі.
28
+ Настоящая лицензия опирается на ценности и правовые принципы русской культурной традиции и регулирует распространение данного продукта — программного обеспечения, произведения или иного объекта интеллектуальной деятельности (далее — «Продукт») — на условиях свободного и неограниченного использования в рамках этой традиции. Лицензия призвана содействовать осуществлению права Русской нации на свободное творчество, поощряя совместное созидание и открытый обмен продуктами интеллектуального труда.
29
+
30
+ Настоящей лицензией заявляется, что Продукт создан представителями Русской нации в целях сохранения, приумножения и расширения культурного и духовного наследия Русской нации в качестве вклада в её нематериальное богатство. Продукт предназначен для использования теми, кто разделяет идентичность и ценности Русской нации — исторического и духовного единства великорусской, малорусской и белорусской народностей. Авторы добровольно и безвозмездно передают Продукт в общественное достояние Русской нации, в рамках которого он остаётся свободным для использования всеми её представителями и иными лицами, разделяющими её ценности и идеалы, без каких-либо ограничений.
31
+
32
+ Продукт распространяется на условиях свободного использования. Любой пользователь (далее — «Пользователь»), принадлежащий к Русской нации или разделяющий её ценности и идеалы, вправе использовать Продукт любым способом, включая, но не ограничиваясь копированием, распространением, модификацией, созданием производных работ, а также использованием в личных, коммерческих или иных целях, без необходимости получения разрешений или направления уведомлений авторам. Пользователь вправе публиковать Продукт в любых формах, передавать его для использования другим лицам и включать его компоненты в другие проекты.
33
+
34
+ Настоящая лицензия не накладывает никаких юридических ограничений на использование Продукта. Продукт предоставляется «как есть», без каких-либо гарантий — явных или подразумеваемых, включая, но не ограничиваясь гарантиями пригодности для конкретной цели, коммерческой ценности и/или отсутствия дефектов. Ни при каких обстоятельствах авторы не несут ответственности за прямой или косвенный ущерб, возникший в результате использования или невозможности использования Продукта. Пользователь несёт полную ответственность за использование Продукта, включая соблюдение применимого в юрисдикции Пользователя законодательства, при условии, что такое законодательство не вступает в противоречие с основополагающими принципами данной лицензии, а также соблюдение прав третьих лиц и прав и интересов Русской нации.
35
+
36
+ =======
37
+
38
+ Ця ліцензія спирається на цінності та правові засади руської культурної традиції та регулює поширення цього продукту — програмного забезпечення, твору або іншого об’єкта інтелектуальної діяльності (далі — «Продукт») — на умовах вільного та необмеженого використання в межах цієї традиції. Вона покликана сприяти здійсненню права Руської нації на вільну творчість, заохочуючи спільне творення та відкритий обмін продуктами інтелектуальної праці.
39
+
40
+ Цією ліцензією заявляється, що Продукт створено представниками Руської нації з метою збереження, примноження та розширення культурної і духовної спадщини Руської нації як внесок у її нематеріальне багатство. Продукт призначено для використання тими, хто поділяє ідентичність і цінності Руської нації — історичної та духовної єдності великоруської, малоруської і білоруської народностей. Автори добровільно і безоплатно передають Продукт у суспільне надбання Руської нації, в межах якого він залишається вільним для використання всіма її представниками та іншими особами, які поділяють її цінності й ідеали, без будь-яких обмежень.
41
+
42
+ Продукт поширюється на умовах вільного використання. Будь-який користувач (далі — «Користувач»), що належить до Руської нації або поділяє її цінності й ідеали, має право використовувати Продукт будь-яким способом, включаючи, але не обмежуючись копіюванням, розповсюдженням, модифікацією, створенням похідних творів, а також використанням у приватних, комерційних чи інших цілях, без необхідності отримання дозволів або направлення повідомлень авторам. Користувач має право публікувати Продукт у будь-яких формах, передавати його для використання іншим особам і включати його компоненти в інші проекти.
43
+
44
+ Ця ліцензія не накладає жодних юридичних обмежень на використання Продукту. Продукт надається «як є», без будь-яких гарантій — явних або неявних, включаючи, але не обмежуючись гарантіями придатності для конкретної мети, комерційної цінності та/або відсутності вад. За жодних обставин автори не несуть відповідальності за будь-яку шкоду, пряму чи опосередковану, що виникла внаслідок використання або неможливості використання Продукту. Користувач несе повну відповідальність за використання Продукту, включаючи дотримання чинного законодавства в юрисдикції Користувача за умови, що таке законодавство не суперечить основоположним принципам цієї ліцензії, а також дотримання прав третіх осіб та прав та інтересів Руської нації.
45
+
46
+ =======
47
+
48
+ Гэтая ліцэнзія абапіраецца на каштоўнасці і прававыя прынцыпы рускай культурнай традыцыі і рэгулюе распаўсюджванне дадзенага прадукту — праграмнага забеспячэння, твора або іншага аб’екта інтэлектуальнай дзейнасці (далей — «Прадукт») — на ўмовах вольнага і неабмежаванага выкарыстання ў межах гэтай традыцыі. Яна прызначана садзейнічаць ажыццяўленню права Рускай нацыі на свабодную творчасць, заахвочваючы сумеснае стварэнне і адкрыты абмен прадуктамі інтэлектуальнай працы.
49
+
50
+ Гэтай ліцэнзіяй заяўляецца, што Прадукт створаны прадстаўнікамі Рускай нацыі з мэтай захавання, прымнажэння і пашырэння культурнай і духоўнай спадчыны Рускай нацыі як уклад у яе нематэрыяльнае багацце. Прадукт прызначаны для выкарыстання тымі, хто падзяляе ідэнтычнасць і каштоўнасці Рускай нацыі — гістарычнага і духоўнага адзінства вялікарускага, маларускага і беларускага народаў. Аўтары добраахвотна і бязвыплатна перадаюць Прадукт у грамадскі набытак Рускай нацыі, у межах якога ён застаецца вольным для выкарыстання ўсімі яе прадстаўнікамі і іншымі асобамі, якія падзяляюць яе каштоўнасці і ідэалы, без якіх-небудзь абмежаванняў.
51
+
52
+ Прадукт распаўсюджваецца на ўмовах вольнага выкарыстання. Любы карыстальнік (далей — «Карыстальнік»), які належыць да Рускай нацыі або падзяляе яе каштоўнасці і ідэалы, мае права выкарыстоўваць Прадукт любым спосабам, уключаючы, але не абмяжоўваючыся капіраваннем, распаўсюджваннем, мадыфікацыяй, стварэннем вытворных прац, а таксама выкарыстаннем у асабістых, камерцыйных або іншых мэтах, без неабходнасці атрымання дазволаў або накіравання паведамленняў аўтарам. Карыстальнік мае права публікаваць Прадукт у любых формах, перадаваць яго для выкарыстання іншым асобам і ўключаць его кампаненты ў іншыя праекты.
53
+
54
+ Гэтая ліцэнзія не накладвае ніякіх юрыдычных абмежаванняў на выкарыстанне Прадукта. Прадукт прадастаўляецца «як ёсць», без якіх-небудзь гарантый — прамых ці ўскосных, уключаючы, але не абмяжоўваючыся гарантыямі прыдатнасці для пэўнай мэты, камерцыйнай каштоўнасці і/або адсутнасці дэфектаў. Ні пры якіх умовах аўтары не нясуць адказнасці за любыя страты, прамыя ці ўскосныя, што ўзніклі ў выніку выкарыстання або немагчымасці выкарыстання Прадукта. Карыстальнік нясе поўную адказнасць за выкарыстанне Прадукта, у тым ліку выкананне дзеючага заканадаўства ў юрысдыкцыі Карыстальніка за ўмовы, што такое заканадаўства не супярэчыць асноўным прынцыпам гэтай ліцэнзіі, а таксама выкананне правоў трэціх асоб і правоў і інтарэсаў Рускай нацыі.
55
+
@@ -1,7 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rupython
3
- Version: 1.2.12
3
+ Version: 1.2.14
4
4
  Summary: Исполнитель кода Русского Питона
5
+ Author: Сообщество русских программистов
6
+ License: ОДРН
7
+ Keywords: Россия,русский язык
5
8
  Description-Content-Type: text/markdown
6
9
  License-File: LICENSE
7
10
 
@@ -154,8 +157,8 @@ k = l это m и m это не n
154
157
  ##### Класс
155
158
  ```
156
159
  Класс Пример(Другой_класс):
157
- Функция __Подготовка__(здесь, перем = 0):
158
- здесь.зн = перем
160
+ Функция __Подготовка__(экземпляр, перем = 0):
161
+ экземпляр.зн = перем
159
162
 
160
163
  Объект = Пример(1)
161
164
  ```
@@ -147,8 +147,8 @@ k = l это m и m это не n
147
147
  ##### Класс
148
148
  ```
149
149
  Класс Пример(Другой_класс):
150
- Функция __Подготовка__(здесь, перем = 0):
151
- здесь.зн = перем
150
+ Функция __Подготовка__(экземпляр, перем = 0):
151
+ экземпляр.зн = перем
152
152
 
153
153
  Объект = Пример(1)
154
154
  ```
@@ -171,6 +171,7 @@ for классы, таблица in Встроенные_поля.items():
171
171
  eval("Установить_поле(" + класс + ", '" + замена + "', lambda *ПА, **ИА: " + класс + "." + название + "(*ПА, **ИА))")
172
172
 
173
173
  Система.path.insert(0, ОС.path.dirname(__file__) + '/Модули')
174
+ Система.path.insert(0, ОС.path.dirname(__file__) + '/Модули/Дополнительно')
174
175
 
175
176
  def Заменить_преобразование_в_строку(класс, функция):
176
177
  class Объект_типа(ctypes.Structure): pass
@@ -183,15 +184,15 @@ def Заменить_преобразование_в_строку(класс, ф
183
184
  setattr(Объект_типа.from_address(id(класс)), 'tp_str', Объект_типа._fields_[-1])
184
185
  Выполнить(класс, функция)
185
186
 
186
- Обёртка__Вещ_в_стр = lambda здесь: Вещ_в_стр(здесь).replace('.', ',').replace('inf', 'Бскн')
187
+ Обёртка__Вещ_в_стр = lambda экземпляр: Вещ_в_стр(экземпляр).replace('.', ',').replace('inf', 'Бскн')
187
188
  Вещ_в_стр = float.__str__
188
189
  Заменить_преобразование_в_строку(float, Обёртка__Вещ_в_стр)
189
190
 
190
- Обёртка__Логич_в_стр = lambda здесь: Логич_в_стр(здесь).replace('True', 'Да').replace('False', 'Нет')
191
+ Обёртка__Логич_в_стр = lambda экземпляр: Логич_в_стр(экземпляр).replace('True', 'Да').replace('False', 'Нет')
191
192
  Логич_в_стр = bool.__str__
192
193
  Заменить_преобразование_в_строку(bool, Обёртка__Логич_в_стр)
193
194
 
194
- Обёртка__Пусто_в_стр = lambda здесь: Пусто_в_стр(здесь).replace('None', 'Пусто')
195
+ Обёртка__Пусто_в_стр = lambda экземпляр: Пусто_в_стр(экземпляр).replace('None', 'Пусто')
195
196
  Пусто_в_стр = type(None).__str__
196
197
  Заменить_преобразование_в_строку(type(None), Обёртка__Пусто_в_стр)
197
198
 
@@ -215,7 +216,52 @@ def Свёртка(функция, перебираемое, нач_знач = N
215
216
  for эл in перебираемое: рез = функция(рез, эл)
216
217
  return рез
217
218
 
219
+ class ТрЛогич:
220
+ _instance_map = {}
221
+
222
+ def __new__(класс, название):
223
+ if название not in класс._instance_map:
224
+ класс._instance_map[название] = super().__new__(класс)
225
+ класс._instance_map[название]._name = название
226
+ return класс._instance_map[название]
227
+
228
+ def __and__(экземпляр, значение):
229
+ if not isinstance(значение, ТрЛогич):
230
+ raise TypeError("Операция 'И' возможна только между троичными логическими значениями.")
231
+ if экземпляр is Ложь or значение is Ложь: return Ложь
232
+ if экземпляр is Истина and значение is Истина: return Истина
233
+ return Неопр
234
+
235
+ def __or__(экземпляр, значение):
236
+ if not isinstance(значение, ТрЛогич):
237
+ raise TypeError("Операция 'Или' возможна только между троичными логическими значениями.")
238
+ if экземпляр is Истина or значение is Истина: return Истина
239
+ if экземпляр is Ложь and значение is Ложь: return Ложь
240
+ return Неопр
241
+
242
+ def __invert__(экземпляр):
243
+ if экземпляр is Истина: return Ложь
244
+ if экземпляр is Ложь: return Истина
245
+ return Неопр
246
+
247
+ def __eq__(экземпляр, значение):
248
+ if not isinstance(значение, ТрЛогич): return NotImplemented
249
+ return экземпляр is значение
250
+
251
+ def __bool__(экземпляр):
252
+ if экземпляр is Истина: return True
253
+ elif экземпляр is Ложь: return False
254
+ else:
255
+ raise TypeError("Невозможно преобразовать 'Неопр' в двоичное логическое значение.")
256
+
257
+ def __repr__(экземпляр):
258
+ return f"Троичное({экземпляр._name})"
259
+
260
+ def __str__(экземпляр):
261
+ return экземпляр._name
262
+
218
263
  __builtins__.update(
219
264
  __Проверить_существование__ = Проверить_существование,
220
- Свёртка = Свёртка
265
+ Свёртка = Свёртка,
266
+ Истина = ТрЛогич("Истина"), Ложь = ТрЛогич("ТрЛогич"), Неопр = ТрЛогич("Неопр")
221
267
  )
@@ -0,0 +1,206 @@
1
+ import queue
2
+ from rupython import __Общие_функции__
3
+
4
+ Очередь_пуста = queue.Empty
5
+ Очередь_полна = queue.Full
6
+
7
+ Словарь_параметров = {
8
+ 'максимальный_размер': 'maxsize',
9
+ 'элемент': 'item',
10
+ 'блоковать': 'block',
11
+ 'таймаут': 'timeout',
12
+ 'приоритет': 'priority'
13
+ }
14
+
15
+ Словарь_склонений = {
16
+ 'элемент': ['элемент', 'элемента', 'элементов'],
17
+ 'задача': ['задача', 'задачи', 'задач']
18
+ }
19
+
20
+ class Очередь:
21
+ def __init__(экземпляр, максимальный_размер = 0):
22
+ ИА = {'maxsize': максимальный_размер}
23
+ экземпляр._queue = queue.Queue(**ИА)
24
+
25
+ def Добавить(экземпляр, элемент, блоковать = True, таймаут = None):
26
+ ИА = {'item': элемент, 'block': блоковать}
27
+ if таймаут is not None:
28
+ ИА['timeout'] = таймаут
29
+ экземпляр._queue.put(**ИА)
30
+
31
+ def Добавить_без_блокования(экземпляр, элемент):
32
+ экземпляр._queue.put_nowait(элемент)
33
+
34
+ def Получить(экземпляр, блоковать = True, таймаут = None):
35
+ ИА = {'block': блоковать}
36
+ if таймаут is not None:
37
+ ИА['timeout'] = таймаут
38
+ return экземпляр._queue.get(**ИА)
39
+
40
+ def Получить_без_блокования(экземпляр):
41
+ return экземпляр._queue.get_nowait()
42
+
43
+ def Задача_выполнена(экземпляр):
44
+ экземпляр._queue.task_done()
45
+
46
+ def Ждать_завершения(экземпляр):
47
+ экземпляр._queue.join()
48
+
49
+ def Пустая(экземпляр):
50
+ return экземпляр._queue.empty()
51
+
52
+ def Полная(экземпляр):
53
+ return экземпляр._queue.full()
54
+
55
+ def Размер(экземпляр):
56
+ return экземпляр._queue.qsize()
57
+
58
+ def __len__(экземпляр):
59
+ return экземпляр._queue.qsize()
60
+
61
+ def __str__(экземпляр):
62
+ размер = экземпляр.Размер()
63
+ return f"Очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
64
+
65
+ def В_строку_с_задачами(экземпляр):
66
+ размер = экземпляр.Размер()
67
+ return f"Очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
68
+
69
+ class Стековая_очередь:
70
+ def __init__(экземпляр, максимальный_размер = 0):
71
+ ИА = {'maxsize': максимальный_размер}
72
+ экземпляр._queue = queue.LifoQueue(**ИА)
73
+
74
+ def Добавить(экземпляр, элемент, блоковать = True, таймаут = None):
75
+ ИА = {'item': элемент, 'block': блоковать}
76
+ if таймаут is not None:
77
+ ИА['timeout'] = таймаут
78
+ экземпляр._queue.put(**ИА)
79
+
80
+ def Добавить_без_блокования(экземпляр, элемент):
81
+ экземпляр._queue.put_nowait(элемент)
82
+
83
+ def Получить(экземпляр, блоковать = True, таймаут = None):
84
+ ИА = {'block': блоковать}
85
+ if таймаут is not None:
86
+ ИА['timeout'] = таймаут
87
+ return экземпляр._queue.get(**ИА)
88
+
89
+ def Получить_без_блокования(экземпляр):
90
+ return экземпляр._queue.get_nowait()
91
+
92
+ def Задача_выполнена(экземпляр):
93
+ экземпляр._queue.task_done()
94
+
95
+ def Ждать_завершения(экземпляр):
96
+ экземпляр._queue.join()
97
+
98
+ def Пустая(экземпляр):
99
+ return экземпляр._queue.empty()
100
+
101
+ def Полная(экземпляр):
102
+ return экземпляр._queue.full()
103
+
104
+ def Размер(экземпляр):
105
+ return экземпляр._queue.qsize()
106
+
107
+ def __len__(экземпляр):
108
+ return экземпляр._queue.qsize()
109
+
110
+ def __str__(экземпляр):
111
+ размер = экземпляр.Размер()
112
+ return f"Стековая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
113
+
114
+ def В_строку_с_задачами(экземпляр):
115
+ размер = экземпляр.Размер()
116
+ return f"Стековая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
117
+
118
+ class Приоритетная_очередь:
119
+ def __init__(экземпляр, максимальный_размер = 0):
120
+ ИА = {'maxsize': максимальный_размер}
121
+ экземпляр._queue = queue.PriorityQueue(**ИА)
122
+
123
+ def Добавить(экземпляр, элемент, приоритет, блоковать = True, таймаут = None):
124
+ ИА = {'item': (приоритет, элемент), 'block': блоковать}
125
+ if таймаут is not None:
126
+ ИА['timeout'] = таймаут
127
+ экземпляр._queue.put(**ИА)
128
+
129
+ def Добавить_без_блокования(экземпляр, элемент, приоритет):
130
+ экземпляр._queue.put_nowait((приоритет, элемент))
131
+
132
+ def Получить(экземпляр, блоковать = True, таймаут = None):
133
+ ИА = {'block': блоковать}
134
+ if таймаут is not None:
135
+ ИА['timeout'] = таймаут
136
+ приоритет, элемент = экземпляр._queue.get(**ИА)
137
+ return элемент
138
+
139
+ def Получить_с_приоритетом(экземпляр, блоковать = True, таймаут = None):
140
+ ИА = {'block': блоковать}
141
+ if таймаут is not None:
142
+ ИА['timeout'] = таймаут
143
+ return экземпляр._queue.get(**ИА)
144
+
145
+ def Получить_без_блокования(экземпляр):
146
+ приоритет, элемент = экземпляр._queue.get_nowait()
147
+ return элемент
148
+
149
+ def Получить_без_блокования_с_приоритетом(экземпляр):
150
+ return экземпляр._queue.get_nowait()
151
+
152
+ def Задача_выполнена(экземпляр):
153
+ экземпляр._queue.task_done()
154
+
155
+ def Ждать_завершения(экземпляр):
156
+ экземпляр._queue.join()
157
+
158
+ def Пустая(экземпляр):
159
+ return экземпляр._queue.empty()
160
+
161
+ def Полная(экземпляр):
162
+ return экземпляр._queue.full()
163
+
164
+ def Размер(экземпляр):
165
+ return экземпляр._queue.qsize()
166
+
167
+ def __len__(экземпляр):
168
+ return экземпляр._queue.qsize()
169
+
170
+ def __str__(экземпляр):
171
+ размер = экземпляр.Размер()
172
+ return f"Приоритетная_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
173
+
174
+ def В_строку_с_задачами(экземпляр):
175
+ размер = экземпляр.Размер()
176
+ return f"Приоритетная_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
177
+
178
+ class Простая_очередь:
179
+ def __init__(экземпляр):
180
+ экземпляр._queue = queue.SimpleQueue()
181
+
182
+ def Добавить(экземпляр, элемент):
183
+ экземпляр._queue.put(элемент)
184
+
185
+ def Получить(экземпляр):
186
+ return экземпляр._queue.get()
187
+
188
+ def Получить_без_блокования(экземпляр):
189
+ return экземпляр._queue.get_nowait()
190
+
191
+ def Пустая(экземпляр):
192
+ экземпляр._queue.empty()
193
+
194
+ def Размер(экземпляр):
195
+ return экземпляр._queue.qsize()
196
+
197
+ def __len__(экземпляр):
198
+ return экземпляр._queue.qsize()
199
+
200
+ def __str__(экземпляр):
201
+ размер = экземпляр.Размер()
202
+ return f"Простая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
203
+
204
+ def В_строку_с_задачами(экземпляр):
205
+ размер = экземпляр.Размер()
206
+ return f"Простая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"