Я предлагаю следующую схему. Его использование позволит автоматически выполнять автозаполнение и подсказку типа.
simpified_elastic_search.py
import search_patterns
class SimplifiedElasticSearch(object):
def __init__(self):
pass
def print_ses(self):
print('SimplifiedElasticSearch')
if __name__ == '__main__':
ses = SimplifiedElasticSearch()
ses.print_ses()
sp = search_patterns.SearchPatterns(ses)
sp.print_sp()
search_patterns.py
import simplified_elastic_search
class SearchPatterns(object):
def __init__(self, ses):
self.ses: simplified_elastic_search.SimplifiedElasticSearch = ses
def print_sp(self):
print('SearchPatterns-1-----------------')
self.sp.print_sp()
print('SearchPatterns-2-----------------')
<час> Нельзя импортировать классы SimplifiedElasticSearch & amp; SearchPatterns, использующие этот синтаксис
from simplified_elastic_search import SimplifiedElasticSearch
from search_patterns import SearchPatterns
Вы не можете объявить тип параметра ses в методе __ init __ класса SearchPatterns, но вы можете "привести его" таким образом:
def __init__(self, ses):
self.ses: simplified_elastic_search.SimplifiedElasticSearch = ses
Можно использовать \pL для соответствия любой 'букве', которая будет поддерживать все буквы на всех языках. Можно сузить его к определенным языкам с помощью 'названный блоками'. Больше информации может быть найдено на документации Классов символов относительно MSDN.
Моя рекомендация состояла бы в том, чтобы поместить регулярное выражение (или по крайней мере часть "буквы") в локализованный ресурс, который можно затем вытащить на основе текущей локали и формы в больший шаблон.
Что относительно \p {имя}?
Соответствия любой символ в именованном классе символов указаны {именем}. Поддерживаемые имена являются группами Unicode и диапазонами блока. Например, Ll, Северная Дакота, Z, IsGreek, IsBoxDrawing.
Я не знаю достаточно о unicode, но возможно Ваши символы соответствуют unicode классу?
Посмотрите символьный выбор категорий с \p
и \w
семантика unicode.
Все символы "допустимы", таким образом, я думаю, что Вы действительно просите символы, которые "обычно считаются буквами" в локали.
Спецификация Unicode имеет некоторые инструкции, но в целом ответ является "нет", необходимо было бы перечислить символы, которые Вы решаете, "буквы".
Существует ли способ автоматически знать то, что символы, допустимы в данной локали/языке, или я должен просто сделать черный список символов, что я (думают I) знаю, что не хочу?
Это не, в целом, возможно.
После того, как весь текст Engligh действительно включает некоторые символы с диакритикой (например, в "fête" и "наивный" - который в британско-английском, чтобы быть строго корректным все еще используют диакритические знаки). На некоторых языках некоторые стандартные буквы редко используются (например, y-диерезис на французском языке).
Затем рассмотрите включая иностранные слова, включены (это будет часто иметь место, где технические термины используются). Цитаты были бы другим источником.
Если Ваши требования достаточно узко определяются, Вы можете создавать определение, но это требует лингвистического опыта на том языке.