Расщепления на основе pyparsing

Если вы используете .NET Framework 3.0 или выше, я бы использовал WCF. Используя WCF, вы можете использовать различные привязки, зависящие от компромисса между производительностью / interop / etc. что вам нужно.

Если производительность не является критичной, и вам нужно взаимодействовать с другими технологиями веб-сервисов, вы захотите использовать привязку WS-HTTP. Для вашего случая вы можете использовать WCF с привязкой net-tcp или привязкой named-pipe. Либо надо работать.

. Мой личный подход заключается в том, что подход WCF более чист, так как вы можете выполнять службы, основанные на контрактах, и фокусироваться на сообщениях, а не на объектах (я делаю обобщение здесь на основе моделей программирования по умолчанию WCF / .NET Remoting). Мне не нравится отправлять объекты через провод, потому что много семантической информации теряется или неясно. Когда все, что вы делаете, отправляет такое сообщение, как вы с WCF, становится легче разделить свои проблемы между коммуникациями и классами / инфраструктурами, из которых состоит один узел.

2
задан user2707389 21 February 2019 в 00:20
поделиться

1 ответ

Тебе не нужен негативный взгляд, т. Е. this:

from pyparsing import *

package_header = Literal("Package:")
single_package =  Word(printables)
full_parser  = OneOrMore( Group( package_header + single_package ) )

print full_parser.parseString("Package:numpy11 Package:scipy")

печатает:

[['Package:', 'numpy11'], ['Package:', 'scipy']]

Обновление: для анализа пакетов, разделенных |, вы можете использовать функцию delimitedList() (теперь вы можете также есть пробелы в именах пакетов):

from pyparsing import *

package_header = Literal("Package:")
package_name = Regex(r'[^|]+')  # | is a printable, so create a regex that excludes it.
package = Group(package_header + package_name) 
full_parser = delimitedList(package, delim="|" )

print full_parser.parseString("Package:numpy11 foo|Package:scipy")

печатает:

[['Package:', 'numpy11 foo'], ['Package:', 'scipy']]
0
ответ дан thebjorn 21 February 2019 в 00:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: