Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / argparse / lib / argument / exclusive.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/argparse/lib/argument/exclusive.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/argparse/lib/argument/exclusive.js
new file mode 100644 (file)
index 0000000..8287e00
--- /dev/null
@@ -0,0 +1,54 @@
+/** internal
+ * class MutuallyExclusiveGroup
+ *
+ * Group arguments.
+ * By default, ArgumentParser groups command-line arguments
+ * into “positional arguments” and “optional arguments”
+ * when displaying help messages. When there is a better
+ * conceptual grouping of arguments than this default one,
+ * appropriate groups can be created using the addArgumentGroup() method
+ *
+ * This class inherited from [[ArgumentContainer]]
+ **/
+'use strict';
+
+var util = require('util');
+
+var ArgumentGroup = require('./group');
+
+/**
+ * new MutuallyExclusiveGroup(container, options)
+ * - container (object): main container
+ * - options (object): options.required -> true/false
+ *
+ * `required` could be an argument itself, but making it a property of
+ * the options argument is more consistent with the JS adaptation of the Python)
+ **/
+var MutuallyExclusiveGroup = module.exports = function MutuallyExclusiveGroup(container, options) {
+  var required;
+  options = options || {};
+  required = options.required || false;
+  ArgumentGroup.call(this, container);
+  this.required = required;
+
+};
+util.inherits(MutuallyExclusiveGroup, ArgumentGroup);
+
+
+MutuallyExclusiveGroup.prototype._addAction = function (action) {
+  var msg;
+  if (action.required) {
+    msg = 'mutually exclusive arguments must be optional';
+    throw new Error(msg);
+  }
+  action = this._container._addAction(action);
+  this._groupActions.push(action);
+  return action;
+};
+
+
+MutuallyExclusiveGroup.prototype._removeAction = function (action) {
+  this._container._removeAction(action);
+  this._groupActions.remove(action);
+};
+