class_docstr: Efficient representation of ``f_1*f_2*...*f_n``.
class_docstr_tok: ["Efficient","representation","of","``","f_1","*","f_2","*","...","*","f_n","``","."]
docstr: Return self raised to a non-negative integer power.
  
  Examples
  ========
  
  >>> from sympy.core.exprtools import Factors
  >>> from sympy.abc import x, y
  >>> a = Factors((x*y**2).as_powers_dict())
  >>> a**2
  Factors({x: 2, y: 4})
docstr_tok: ["Return","self","raised","to","a","non-negative","integer","power",".","Examples","========",">",">",">","from","sympy.core.exprtools","import","Factors",">",">",">","from","sympy.abc","import","x",",","y",">",">",">","a","=","Factors","(","(","x","*","y","*","*","2",")",".as_powers_dict","(",")",")",">",">",">","a","*","*","2","Factors","(","{","x",":","2",",","y",":","4","}",")"]
code: def pow(self, other):  # Factors
      """Return self raised to a non-negative integer power.
  
      Examples
      ========
  
      >>> from sympy.core.exprtools import Factors
      >>> from sympy.abc import x, y
      >>> a = Factors((x*y**2).as_powers_dict())
      >>> a**2
      Factors({x: 2, y: 4})
  
      """
      if isinstance(other, Factors):
          other = other.as_expr()
          if other.is_Integer:
              other = int(other)
      if isinstance(other, SYMPY_INTS) and other >= 0:
          factors = {}
  
          if other:
              for factor, exp in self.factors.items():
                  factors[factor] = exp * other
  
          return Factors(factors)
      else:
          raise ValueError(
              "expected non-negative integer, got %s" % other
          )
  
imports: from .add import Add
  from .mul import Mul, _keep_coeff
  from .power import Pow
  from .basic import Basic
  from .expr import Expr
  from .function import expand_power_exp
  from .sympify import sympify
  from .numbers import Rational, Integer, Number, I, equal_valued
  from .singleton import S
  from .sorting import default_sort_key, ordered
  from .symbol import Dummy
  from .traversal import preorder_traversal
  from .coreerrors import NonCommutativeExpression
  from .containers import Tuple, Dict
  from sympy.external.gmpy import SYMPY_INTS
  from sympy.utilities.iterables import common_prefix, common_suffix, variations, iterable, is_sequence
  from collections import defaultdict
  from typing import Tuple
label_desc: Use image node_id 12 for calling the Factors obj's underlying member method code with example usage: obj.pow(other) and returns: Factors