code: def by_filter(cls, session, opts, **kwargs):
          
          where = []
  
          if opts.get('local_only'):
              where.append(cls.local == True)
  
          if opts.get('names'):
              where.append(cls.name.in_(opts['names']))
  
          if opts.get('classifiers'):
              ids = [c.id for c in opts.get('classifiers')]
              cls_pkg = classifier__package
              qry = session.query(cls_pkg.c.package_id,
                                  func.count('*'))
              qry = qry.filter(cls_pkg.c.classifier_id.in_(ids))
              qry = qry.group_by(cls_pkg.c.package_id)
              qry = qry.having(func.count('*') >= len(ids))
              where.append(cls.id.in_([r[0] for r in qry.all()]))
  
          return cls.find(session, where=where, **kwargs)
docs: Get packages from given filters.
  
          :param session: SQLAlchemy session
          :type session: :class:`sqlalchemy.Session`
  
          :param opts: filtering options
          :type opts: `dict
  
          :return: package instances
          :rtype: generator of :class:`pyshop.models.Package`