3 f4 @ s d dl mZ d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl mZmZ d dl Z d dlZ dZejdjeZejdZdddd Zd d Zdd Zdd Ze jjG dd de jjZdS ) )absolute_import)unicode_literalsN)_loggerz -a-z0-9_.:z^[{}]+$z^[-a-zA-Z0-9_.@]+$T)Zdefault_explicitZuservisible_explicitZempty_groupsc C s t j| stjtd| S )zgroup id validatorzInvalid group id)RE_GROUP_IDmatchargparseArgumentTypeErrorr )value r $/usr/lib/python3.6/groups_manager.py group_id_type. s r c C sN | j dd}t|dkr&tjtd|\}}tj|sFtjtd||fS )ztranslated texts validator: z6Invalid translated data, should be in form 'lang:text'z*Invalid/empty language for translated data)splitlenr r r RE_LANGr )r datalangtextr r r translation_type5 s r c C s: | j }tjdjtd|}|s6tjjtdj| |S )z#generate group id based on its namez[^{}] zFCan't generate group id from '{}'. Please specify group id using --id.) lowerresubformatRE_GROUP_ID_VALIDdnfcliCliErrorr )r group_idr r r text_to_idA s r! c sd e Zd ZdZedZ fddZedd Zdd Z d d Z dd Zd d Zdd Z dd Z ZS )GroupsManagerCommandgroups-managerz$create and edit groups metadata filec s t t| j| tj | _d S )N)superr" __init__libcompsCompscomps)selfr ) __class__r r r% Q s zGroupsManagerCommand.__init__c C s | j ddg dtdd | j ddg dtdd | j ddtd d | j ddd tdd | j dttdd | j ddtdd | j dtdd | j dttdd | j ddg dttdd | j ddg dttd d | j }|j d!d"dd td#d$ |j d%d"d&d